如何遍历2个javascript对象数组并创建第三个?
我有两个目标。obj2有文本,obj1有3个子IBJID。如何基于obj1将“id”添加到obj2? 例如:obj1在第一个对象(10011002)中有2个子对象ID。我想计算obj1拥有的子对象id的数量,并遍历obj1,然后将id的键和值添加到obj2。如果obj1有两个子对象id,则将id:1添加到obj2的前两个条目中,依此类推 我正在学习javascript并试图解决一些想象中的问题。任何帮助都将不胜感激。多谢各位如何遍历2个javascript对象数组并创建第三个?,javascript,object,Javascript,Object,我有两个目标。obj2有文本,obj1有3个子IBJID。如何基于obj1将“id”添加到obj2? 例如:obj1在第一个对象(10011002)中有2个子对象ID。我想计算obj1拥有的子对象id的数量,并遍历obj1,然后将id的键和值添加到obj2。如果obj1有两个子对象id,则将id:1添加到obj2的前两个条目中,依此类推 我正在学习javascript并试图解决一些想象中的问题。任何帮助都将不胜感激。多谢各位 var obj1={[ { id:1, 名称:'苹果', 子对象ID
var obj1={[
{
id:1,
名称:'苹果',
子对象ID:[10011002]
子对象:[
{
subId:1001
子名称:“ant”,
},
{
subId:1002
子名称:“球”,
}
],
},
{
{
id:2,
名称:“斑马”,
子对象ID:[1003]
子对象:[
{
subId:1003
子名称:“猫”,
}
],
},
]
}
变量obj2={[
{
文字:“我是文字”
},
{
文字:“我是一些随机字符”
},
{
文字:“我是一些数字”
}
] }
成为
finalObject={[
{
id:1,
文字:“我是文字”
},
{
id:1,
文字:“我是一些随机字符”
},
{
id:2,
文字:“我是一些数字”
}
]}
使用此代码段
var obj1=[
{
id:1,
名称:'苹果',
子对象ID:[10011002],
子对象:[{
subId:1001,
子名称:“ant”,
},
{
subId:1002,
子名称:“球”,
}
],
},
{
id:2,
名称:“斑马”,
子对象ID:[1003],
子对象:[{
subId:1003,
子名称:“猫”,
}],
},
]
变量obj2=[
{
文字:“我是文字”
},
{
文字:“我是一些随机字符”
},
{
文字:“我是一些数字”
}
]
var finalObject=obj1.map(函数(值、索引){
返回{
id:value.id,
text:obj2[index]。text
}
})
console.log(finalObject)
试试这个
var obj1=[
{
id:1,
名称:'苹果',
子对象ID:[10011002]
},
{
id:2,
名称:“斑马”,
子对象ID:[1003]
}
]
变量obj2=[
{
文字:“我是文字”
},
{
文字:“我是一些随机字符”
},
{
文字:“我是一些数字”
}
]
设指数=0;
让start=0;
obj1.map(数据1=>{
index+=data1.subObjId.length;
对于(var i=start;i您可以使用
提取所有子对象的数组的步骤
- 也只能将它们放入父对象的
id
属性中
执行另一个映射操作,复制obj2
中匹配对象的内容,并添加id
。
- 为了方便起见,这使用了
Array#map
的第二个参数,它在回调中设置this
上下文
也可用于紧凑性和复印:
var obj1=[{id:1,名称:'apple',子对象id:[1001102],子对象:[{subId:1001,子名称:'ant'},{subId:1002,子名称:'ball'}],{id:2,名称:'zebra',子对象id:[1003],子对象:[{subId:1003,子名称:'cat',}],},];
var obj2=[{text:'我是一个文本'},{text:'我是一些随机字符'},{text:'我是一些数字'}];
var finalObject=obj1
//1.将flatMap映射到单个数组中
.flatMap({id,subObjs})=>subObjs
.map(sub=>({id}))//仅获取每个子对象的父id
)//结果:[{id:1},{id:1},{id:2}]
.map(函数({id},索引){
返回{id,…this[index]}//2.使用另一个数组中匹配对象的id和内容创建一个新对象
},obj2);//您尝试了什么吗?此语法不正确-如果没有值键{[],则不能将数组作为对象文字中的唯一内容
。您想要一个数组还是一个对象来保存数据?目前还不太清楚这两组数据之间的关系。您能否更明确地说明如何将一组数据链接到另一组数据?生成两个输出,而OP希望有三个-id:1
应该在其中两次,因为有两个子对象。