javascript - 如何在 JavaScript 中创建对象列表

标签 javascript node.js json

我有一个值对数组,有点像这样:

 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 = { 数据: myArra.map((pair, index) => ({pair, id: otherArr[index] }) }

关于javascript - 如何在 JavaScript 中创建对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60158675/

相关文章:

javascript - django框架下的JSON解析

java - jackson : Partially update bean with json String

javascript - 在 Node.JS 中使用 JSON 文件作为数组

javascript - getUserMedia 权限对话框在 FireFox 中消失

javascript - 当我尝试引用另一个模式的对象时,为什么 mongoose ref 对我不起作用?

Javascript将对象插入数组不起作用

javascript - 绑定(bind)到 Angular 中按钮的索引增量函数不会增加索引,也不会迭代数组

javascript - JSON 解析转义字符串

javascript - 使用 nodejs 从页面中获取规范化或查找标题

ruby - 为什么我会得到 "no implicit conversion of String into Integer (TypeError)"?