我有一个值对数组,有点像这样:
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 = {
数据: myArra.map((pair, index) => ({pair, id: otherArr[index] })
}
关于javascript - 如何在 JavaScript 中创建对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60158675/