如何在JavaScript中使用两个数组来创建对象字面值数组



我想创建一个像这样的对象字面值数组

var data = [
      {name: 'John A. Smith', state: 'CA'},
      {name: 'Joan B. Jones', state: 'NY'}
    ];

namestate存储在阵列columns中。

John A. SmithCA存储在数组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);

最新更新