簡體   English   中英

如何在 JavaScript 中創建對象列表

[英]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]})
}

假設myarraotherArr始終具有相同的長度,編寫上述內容的一種更短的方法是使用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.

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