如何遍历2个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

我有两个目标。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:[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
    应该在其中两次,因为有两个
    子对象。