EasyUI Datagrid 獲取行數據時,屬性名存儲在變量 obj 中(如 "CS4"),直接寫 rows[0].obj 返回 undefined。
JavaScript 中 . 操作符**只能用於標識符字面量**,無法使用變量作為屬性名。rows[0].obj 會查找名為 "obj" 的屬性,而非變量 obj 的值。
var obj = "CS4"; // 動態屬性名
var value = rows[0][obj]; // 方括號語法,obj 為變量
console.log(value); // 正確輸出 CS4 對應的值
var rows = $('#dg').datagrid('getRows');
var fields = ['CS4', 'CS5', 'CS6'];
var result = rows.map(row => {
var obj = {};
fields.forEach(f => obj[f] = row[f]);
return obj;
});
console.log(result);
[]** 。for...in 遍歷對象屬性時,鍵為字符串,天然適配方括號。