我尝试通过数组中的对象各自的组号对它们进行分组。如果他/她是领导者或成员,我还添加了额外的字段来标记对象。那行得通,但是我的问题是,嵌套数组中的“ advisers”对象没有返回。当我使用传播语法返回时,它是null
。
这是我的数组:
const data = [{
"name": "John",
"groupNo": 1
}, {
"name": "Chelsea",
"groupNo": 1
}, {
"name": "Mark",
"groupNo": 1
}, {
"name": "Mary",
"groupNo": 8
}, {
advisers: [{
"name": "Kenedy",
"groupNo": 1
}, {
"name": "Chelsea",
"groupNo": 1
}, {
"name": "Chris",
"groupNo": 8
}];
}];
这是我添加额外字段的代码。它可以工作,但advisers
数组是null
。
const output = data.map(function(member) {
if (this.has(member.groupNo)) {
// Member
return {
...member,
"leaderNo": "",
"memberNo": this.size
}
}
// Leader
this.add(member.groupNo)
return {
...member,
"leaderNo": this.size,
"memberNo": ""
}
}, new Set())
console.log(output);
我只想保留阵列中的所有数据,包括顾问阵列
答案 0 :(得分:1)
您的数组不一致,因此您可以在map函数中添加对Advisors键的检查,然后从那里开始。像这样:
const {advisers} = member;
if(advisers){
return {advisers};
}