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

时间:2014-07-23 00:04:55

标签: javascript arrays object object-literal

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

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数组。

1 个答案:

答案 0 :(得分:1)

您必须将支架运算符与列值一起使用:

var temp = [];
var tempObj = {};
for (var i = 0; i < data.length; ++i) {
  tempObj[columns[i]] = data[i];
}
temp.push(tempObj);