Как объединить свойство массива объекта на основе условия? - PullRequest
0 голосов
/ 17 января 2019

Как объединить два объекта вместе. И добавлять новый объект в тело каждый раз, когда число совпадает? Я попытался использовать оператор спреда, но он менял значение, а не менял его.

До:

let obj = {
  number: "123",
  body:[
    {
      id:'client',
      text:'hi'
    }
  ]
}

let obj2 = {
  number: "123",
  body:[
    {
      id:'client',
      text:'Hello there'
    }
  ]
}

Мне нужно объединить их, чтобы иметь:

obj = {
  number: "123",
  body:[
    {
      id:'client',
      text:'hi'
    },
    {
      id:'client',
      text:'Hello there'
    }
  ]
}

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Если есть только два объекта, вы можете сделать это так

if (obj.number == obj2.number) {
   obj.body = obj.body.concat(obj2.body)
   console.log("Here's is your new object", obj);
} 
0 голосов
/ 17 января 2019

Просто проверьте, равна ли клавиша number в обоих случаях, затем итерируйте obj2.body и вставьте каждый элемент в obj.body

let obj = {
  number: "123",
  body: [{
    id: 'client',
    text: 'hi'
  }]
}

let obj2 = {
  number: "123",
  body: [{
    id: 'client',
    text: 'Hello there'
  }]
}

if (obj2.number === obj.number) {
  obj2.body.forEach(item => {
    obj.body.push(item)
  })
}

console.log(obj)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...