2016-11-23 27 views
-1

我有2个阵列 -分配值的JavaScript

1-Numbers = [3,4,5]
2-selection= [ [1,2,3,4],[6,5,4,3],[2,9,4]]

现在,在输出I想3应该是键索引即[1,2,3,4]

输出应低于 -

selection= = { '3':[1,2,3,4] ,'4':[6,5,4,3] ,'5':[2,9,4]} 
+0

迭代,从两个数组中获取当前索引的元素,添加到对象中。为什么你需要lodash? – Tushar

回答

2

只使用_.zipObject https://lodash.com/docs/4.17.2#zipObject

_.zipObject(Numbers, selection) 
+0

这个答案应该说明它使用lodash。唯一的提示是问题中的标签,这绝对不够。同样,即使技术上正确,只发布代码片段也不可能有资格成为“答案”。 –

+2

尽管..他在这里得到了最高的评价,因为他是对的,因为他读了这个问题和标签。 答案可以在lodash文档中找到,我认为没有什么补充。 – Aks

1

在纯Javascript中,您可以迭代numbers并使用数字键构建一个新对象,并将具有相同索引的selection作为值。

var numbers = [3, 4, 5], 
 
    selection = [[1, 2, 3, 4], [6, 5, 4, 3], [2, 9, 4]], 
 
    result = {}; 
 

 
numbers.forEach(function (k, i) { 
 
    result[k] = selection[i]; 
 
}); 
 

 
console.log(result);

ES6

var numbers = [3, 4, 5], 
 
    selection = [[1, 2, 3, 4], [6, 5, 4, 3], [2, 9, 4]], 
 
    result = numbers.reduce((r, k, i) => Object.assign(r, { [k]: selection[i] }), {}); 
 

 
console.log(result);