2014-02-13 53 views
-2

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

所以从这样的事情

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
} ];

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

+2

向我解释,你已经尝试过的情况,我会解释你在哪里错了。 –

+2

看起来很简单。你有什么问题? –

+0

你有什么特别的问题呢?你知道如何迭代数组吗? –

回答

0

A “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/

+0

我不认为这就是他以后的事情。很确定'rows'中的每个嵌套数组具有'.length'等于'columns.length' ,而且这是一个简单的mapp关键'列[i]'值'current_row [i]'。我想你已经把它翻过来了。 –

+0

...不是说明太清楚了。 ;-) –

+0

看起来我有点混淆了我的规范 - 让我看看我是否可以围绕一点(匹配错误的cols和rows)来讨论这个问题 - 但这个概念似乎没问题 - 我会尽快回复 – datafunk

相关问题