[英]How to create a list of objects in JavaScript
我有一組類似這樣的值對:
let myarr = [[1, 'a'],
[2, 'b'],
[3, 'c']]
和一個這樣的:
let otherArr = [5,6,7]
我想將它們轉換為以下形式的對象:
{
"data":[
{
"id":5,
"pair":[
1,
"a"
]
},
{
"id":6,
"pair":[
2,
"b"
]
},
{
"id":7,
"pair":[
3,
"c"
]
}
]
}
作為第一次嘗試
我嘗試使用for
循環並嘗試創建這樣的pair
鍵列表
for (let pair = 0; pair < myarr.length; pair++) {
myobj[pair].pair = myarr[pair]
我收到一個錯誤,指出TypeError: Cannot set property 'pair' of undefined
有沒有一種有效的方法來創建一個像上面例子那樣的對象提前謝謝
for 循環失敗的原因是您需要先實例化一個對象,然后才能為其設置屬性。 例如,您可以使用Array.push
迭代您的數組並在每個索引處創建新對象。
const myobj = { data: [] };
for (let index = 0; index < myarr.length; index++) {
myobj.data.push({ pair: myarr[index], id: otherArr[index]})
}
假設myarra
和otherArr
始終具有相同的長度,編寫上述內容的一種更短的方法是使用Array.map
迭代您的第一個數組並返回一個相同長度的新數組。
const myobj = { data: myArra.map((pair, index) => ({ pair, id: otherArr[index] }) }
嘗試這個 :
let otherArr = [5,6,7]; let myarr = [[1, 'a'], [2, 'b'], [3, 'c']]; let obj = { "data":[] }; otherArr.map((item, index) => { obj.data.push({ "id": item, "pair": myarr[index] }) }); console.log(obj);
您可以執行以下操作
let myarr = [[1, 'a'], [2, 'b'], [3, 'c']]; let otherArr = [5,6,7]; let data = myarr.map((i,idx) => { return { "id": otherArr[idx], "pair": i }; }); console.log({data});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.