对象数组中有相同属性就替换属性值,没有就push当前属性
时间: 2024-02-05 19:25:30 浏览: 37
好的,我明白了。您想要一个功能,可以将具有相同属性的对象进行属性值替换,并将没有相同属性的对象添加到数组中。以下是一个示例的实现代码:
```javascript
function updateArrayObjects(arr, newObj) {
let isMatched = false;
for (let i = 0; i < arr.length; i++) {
if (arr[i].property === newObj.property) {
arr[i].value = newObj.value;
isMatched = true;
break;
}
}
if (!isMatched) {
arr.push(newObj);
}
return arr;
}
// 示例用法
const objArray = [
{ property: 'a', value: 1 },
{ property: 'b', value: 2 },
{ property: 'c', value: 3 }
];
const newObj1 = { property: 'b', value: 4 };
const newObj2 = { property: 'd', value: 5 };
console.log(updateArrayObjects(objArray, newObj1));
// 输出: [ { property: 'a', value: 1 }, { property: 'b', value: 4 }, { property: 'c', value: 3 } ]
console.log(updateArrayObjects(objArray, newObj2));
// 输出: [ { property: 'a', value: 1 }, { property: 'b', value: 4 }, { property: 'c', value: 3 }, { property: 'd', value: 5 } ]
```
在上面的示例中,`updateArrayObjects` 函数接收一个对象数组 `arr` 和一个新对象 `newObj`。它首先遍历数组,检查是否存在具有相同属性的对象。如果找到匹配的对象,则替换其属性值。如果没有找到匹配的对象,则将新对象添加到数组末尾。最后,返回更新后的数组。
请注意,这只是一个简单的示例实现,您可以根据需要进行修改和扩展。
阅读全文