2016-11-23 63 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);