在JavaScript中将具有相同键的嵌套对象合并为单个对象
这是我在JavaScript中的数组,我想将下面的teacher对象合并为combine单个对象以进一步执行操作在JavaScript中将具有相同键的嵌套对象合并为单个对象,javascript,arrays,object,Javascript,Arrays,Object,这是我在JavaScript中的数组,我想将下面的teacher对象合并为combine单个对象以进一步执行操作 const data = [ { name: "ab", class: 1, grade: "A", teacher: { teacherName: "tab", age: 34, school: "ab pblc scl" } }, { name: "cd", class: 2,
const data = [
{
name: "ab",
class: 1,
grade: "A",
teacher: {
teacherName: "tab",
age: 34,
school: "ab pblc scl"
}
},
{
name: "cd",
class: 2,
grade: "B",
teacher: {
teacherName: "efg",
age: 35,
school: "cd pblc scl"
}
}
];
这是我的预期输出。这里教师对象与其他单个对象合并。你知道我该怎么做吗
const data = [
{
name: "ab",
class: 3,
grade: "B",
teacherName: "kio",
age: 38,
school: "ab pblc scl"
},
{
name: "de",
class: 2,
grade: "B",
teacherName: "tde",
age: 36,
school: "de pblc scl"
}
}
];
任何帮助都将不胜感激您可以使用spread operator来完成
const data = [
{
name: "ab",
class: 1,
grade: "A",
teacher: {
teacherName: "tab",
age: 34,
school: "ab pblc scl"
}
},
{
name: "cd",
class: 2,
grade: "B",
teacher: {
teacherName: "efg",
age: 35,
school: "cd pblc scl"
}
}
];
const newData = data.map(d => {
const dClone = Object.assign({},d);
delete dClone.teacher;
return {
...dClone,
...d.teacher
}
})
console.log(newData);
您可以分解
teacher
,并使用teacher
将数组的其余部分分散到一个新对象
方法:
- 至
教师
result = data.map(({ teacher, ...object }) => ({ ...object, ...teacher })); ^ ^^^^^^^ ^
- 要获取所有其他属性
result = data.map(({ teacher, ...object }) => ({ ...object, ...teacher })); ^ ^^^^^^^^^ ^
- 用于获取对象自身可枚举属性的副本
result = data.map(({ teacher, ...object }) => ({ ...object, ...teacher })); ^ ^^^^^^^^^ ^^^^^^^^^^ ^
const
数据=[{姓名:“ab”,班级:1,年级:“A”,教师:{教师姓名:“tab”,年龄:34岁,学校:“ab pblc scl”},{姓名:“cd”,班级:2,年级:“B”,教师:{教师姓名:“efg”,年龄:35岁,学校:“cd pblc scl”},
结果=data.map({teacher,…object})=>({…object,…teacher}));
控制台日志(结果)代码>
。作为控制台包装{最大高度:100%!重要;顶部:0;}