[英]How to combine two arrays into an array of objects in javascript?
我有兩個數組,我想形成一個對象數組,這樣 obj 的新數組有兩個鍵,第一個鍵填充第一個數組的元素,第二個鍵具有第二個數組的數組元素。 這可以使用地圖功能完成。 我找到了最接近的答案:- 將兩個數組合並到一個具有屬性值的對象數組中
例如。:-
ar1=[];
ar2=[];
armixed=[{ar1element,ar2element},{}......]
但它使用 Angular JS 我只想使用純 JS。
我不確定您的輸出應該是什么,但您提供的輸出似乎無效。 我已將輸出格式修改為有效。
對於您的任務,解決方案是zip
數組,但是,JS 沒有內置的zip
函數,因此我們可以通過map
函數模擬它:
var ar1 = ['a1', 'a2', 'a3', 'a4', 'a5'];
var ar2 = ['b1', 'b2', 'b3', 'b4', 'b5'];
var armixed = ar1.map(function (x, i) {
return [x, ar2[i]]
});
輸出將是:
armixed = [
["a1", "b1"]
["a2", "b2"]
["a3", "b3"]
["a4", "b4"]
["a5", "b5"]
]
如果您想要輸出中的對象(而不是數組),您可以將上面的 return 語句編輯為:
return { categories: x, catid: ar2[i] }
只是為了澄清一下,您是否想要一個對象用於數組的每個唯一可能組合? 如果是這樣,嵌套兩個 map 函數應該可以解決問題:
let newArray = [{}] arr1.map(i => { arr2.map (j => { newArray.push({prop1: i, prop2: j}) }) })
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.