簡體   English   中英

如何在javascript中將兩個數組組合成一個對象數組?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM