查找并替换数组中的匹配对象 - JavaScript

Geo*_*ale 3 javascript reactjs

我有一系列的人对象。当添加一个新人时,函数应该检查是否已经添加了具有该名字的人。如果是这样,该对象应替换为新对象。如果新人还没有被添加,那么他们只是被添加到最后。这样做的最佳方法是什么?

这是对象

    const people = [
    {name: Joe M, town: London},
    {name: Julie A, town: London},
    {name: Sally N, town: Edinburgh},
    {name: Max M, town: Liverpool}
  ]
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的

  for(let key in people) {
  if(people[key].name === newPerson.name){
    people.splice(key, 1, newPerson)
  } else {
    this.people.push(this.newPerson)
  }
}
Run Code Online (Sandbox Code Playgroud)

Raf*_*ini 7

方法很多,试试这个:

  const index = people.findIndex(p => p.name === newPerson.name)

  if(index === -1) {
     people.push(newPerson);
  } else {
     people[index] = newPerson;
  }
Run Code Online (Sandbox Code Playgroud)