[英]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.