我想创建一个像这样的对象字面值数组
var data = [
{name: 'John A. Smith', state: 'CA'},
{name: 'Joan B. Jones', state: 'NY'}
];
name
和state
存储在阵列columns
中。
John A. Smith
和CA
存储在数组data
中。
我试着这样写,但似乎我不能在:
之前使用columns[i]
,
var temp = [];
for (var i = 0; i < data.length; i++) {
temp.push({
columns[i]: data[i]
});
}
感谢Lochemage,它适用于我的专栏。下面是我的全部代码:
var temp = [];
var tempObj = {};
for (var i=0; i<colHeads.length; i++) { // columns
var dataArr = '$colData.get(i)'.split(",");
for (var j = 0; j < dataArr.length; ++j) { // data
tempObj[colHeads[i]] = dataArr[j];
}
temp.push(tempObj);
}
这个'$colData.get(i)'
似乎与直接索引(0,1,…)一起工作,但它不适用于i
。
顺便说一下,$colData
是一个来自速度标记的字符串数组;它包含字符串。在这个特殊的问题中,它包含
[0]: CA, NY
[1]: John A. Smith, Joan B. Jones
和我需要的最终结果是在顶部声明的data
数组。
您必须使用括号操作符来代替您的列值:
var temp = [];
var tempObj = {};
for (var i = 0; i < data.length; ++i) {
tempObj[columns[i]] = data[i];
}
temp.push(tempObj);