繁体   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