简体   繁体   English

如果我使用传播语法,如何完全返回内部嵌套对象的数组?

[英]How can I completely return the array with nested array of objects inside if I am using spread syntax?

I try to group the objects in an array, by their respective group number. 我尝试按对象的各自组号对数组中的对象进行分组。 I also added extra fields to tag objects if he/she is a leader or a member. 如果他/她是领导者或成员,我还添加了额外的字段来标记对象。 That works, but my problem is, the 'advisers' objects inside my nested array were not returning. 那行得通,但是我的问题是,嵌套数组中的“ advisers”对象没有返回。 It is null when I uses spread syntax to return. 当我使用传播语法返回时,它为null

This is my array: 这是我的数组:

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
  }];
}];

This is my code for adding extra fields. 这是我添加额外字段的代码。 It works but the advisers array is null . 它可以工作,但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);

I just want to retain all data in array including advisers array 我只想保留阵列中的所有数据,包括顾问阵列

Your array is not consistent so you can add a check for the advisers key in the map function and go from there. 您的数组不一致,因此可以在map函数中添加对Advisors键的检查,然后从那里开始。 Something like: 就像是:

const {advisers} = member; 
if(advisers){
   return {advisers};
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM