javascript - 在数组中查找和替换匹配的对象 - 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)
}
}
解决方案
方法很多,试试这个:
const index = people.findIndex(p => p.name === newPerson.name)
if(index === -1) {
people.push(newPerson);
} else {
people[index] = newPerson;
}
推荐阅读
- javascript - 如何为 js 捆绑应用提供配置?
- exception - 默认情况下,出站处理程序是否应该传递 ChannelPromise?
- python - 用科学计数法写 json float
- css - 使用 CSS 变换倾斜后应用于位置 div 的边距
- javascript - Angular2 fire监听节点更改会引发错误
- php - php文件没有上传到文件夹中
- angular - Angular 离线 - 由于文件路径,无法匹配任何路由
- c# - 改善使用实体框架时的搜索功能延迟
- angular - 如何列出所有组件属性
- c# - C# - 为什么 VS 2017 将事件对象的空检查设为灰色?