首页 > 解决方案 > 在数组中查找和替换匹配的对象 - JavaScript

问题描述

我有一组人对象。添加新人时,函数应检查是否已添加具有该名称的人。如果是这样,则应将该对象替换为新对象。如果尚未添加新人,则只需将其添加到末尾。最好的方法是什么?

这是对象

    const people = [
    {name: Joe M, town: London},
    {name: Julie A, town: London},
    {name: Sally N, town: Edinburgh},
    {name: Max M, town: Liverpool}
  ]

这是我尝试过的

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

标签: javascriptreactjs

解决方案


方法很多,试试这个:

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

  if(index === -1) {
     people.push(newPerson);
  } else {
     people[index] = newPerson;
  }

推荐阅读