js数组对象中有一个子数组对象,怎样提取子对象数组的值成为父数组对象的项目
时间: 2023-10-11 16:05:32 浏览: 107
可以使用JavaScript中的map函数或for循环来实现这个需求,具体步骤如下:
1. 使用map函数或for循环遍历子数组对象,获取每个子对象
2. 将子对象需要的属性值提取出来,形成一个新的对象
3. 将新对象添加到父数组对象中
代码示例:
使用map函数:
```
var arr = [{id: 1, name: 'Alice', children: [{id: 11, name: 'Bob'}, {id: 12, name: 'Charlie'}]}, {id: 2, name: 'David', children: [{id: 21, name: 'Emma'}, {id: 22, name: 'Frank'}]}];
var result = arr.map(function(parent) {
return parent.children.map(function(child) {
return {parentId: parent.id, parentName: parent.name, childId: child.id, childName: child.name};
});
}).flat();
console.log(result);
```
在这个示例中,我们首先使用map函数遍历父数组对象,获取每个子数组对象。然后,我们对每个子数组对象使用map函数,将其子对象需要的属性值提取出来,形成一个新的对象。最后,我们将新对象添加到父数组对象中,使用flat函数将所有子数组对象合并成一个数组,并输出整个数组对象。
使用for循环:
```
var arr = [{id: 1, name: 'Alice', children: [{id: 11, name: 'Bob'}, {id: 12, name: 'Charlie'}]}, {id: 2, name: 'David', children: [{id: 21, name: 'Emma'}, {id: 22, name: 'Frank'}]}];
var result = [];
for(var i = 0; i < arr.length; i++) {
var parent = arr[i];
for(var j = 0; j < parent.children.length; j++) {
var child = parent.children[j];
result.push({parentId: parent.id, parentName: parent.name, childId: child.id, childName: child.name});
}
}
console.log(result);
```
在这个示例中,我们首先使用for循环遍历父数组对象,获取每个子数组对象。然后,我们对每个子数组对象使用for循环,将其子对象需要的属性值提取出来,形成一个新的对象。最后,我们将新对象添加到父数组对象中,并输出整个数组对象。
阅读全文