将数组和数组数组转换为具有键值对的对象数组

时间:2014-02-13 02:37:09

标签: javascript arrays

我有一个数组(列)和一个数组数组(单元格数据行)。 我需要将它们合并并转换为对象的数组或对象,其中每个对象都包含键值对。

所以从这样的事情

var columns = ['col 1', 'col 2', 'etc']

var rows = [arr1[], arr2[], arr3[]]

// where arr1.length === columns.length

我的结果需要像

var result = [ { 'col 1':arr1[0].value, 'col 2':arr1[1].value, ...etc }, { 'col 1':arr2[0].value, 'col 2':arr2[1].value, ...etc
} ];

我希望这是有道理的。 谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

“oneliner”,只是为了好玩:

var columns = ['col 1', 'col 2', 'col 3'];

var rows = [
    [1,2,3],
    [4,5,6],
    [7,8,9],
    [10,11,12]
];

var result = rows.map(function(row) {
    return this.reduce(function(result, column, columnIndex) {
        result[column] = row[columnIndex];
        return result;
    }, {});
}, columns);

console.log(result);

JSFiddle:http://jsfiddle.net/KkWX4/2/

相关问题