以数组对象中指定属性的值从一个另一个数组移除已存在这个属性的对象
时间: 2024-09-20 15:07:28 浏览: 40
Javascript根据指定下标或对象删除数组元素
5星 · 资源好评率100%
在 JavaScript 中,你可以使用 `filter()` 函数配合 `indexOf()` 或者 `includes()` 来实现这个功能。假设你有两个数组,一个是 `sourceArray`,存储了需要查找的对象,另一个是 `targetArray`,包含了一些已经存在的对象(基于相同的指定属性)。你可以创建一个新的数组 `resultArray`,只保留那些在 `targetArray` 中找不到指定属性值的对象。
这是一个示例:
```javascript
let sourceArray = [
{ id: '1', value: 'A' },
{ id: '2', value: 'B' },
{ id: '3', value: 'C' },
{ id: '4', value: 'D' }
];
let targetArray = [
{ id: '1', replacementKey: 'Replacement A' },
{ id: '3', replacementKey: 'Replacement C' }
];
let resultArray = sourceArray.filter(obj => !targetArray.some(item => item.id === obj.id));
console.log(resultArray); // 输出过滤后的数组,只包含不在 targetArray 中的对象
```
在这个例子中,`filter()` 函数会遍历 `sourceArray`,对于每个对象,`some()` 函数会在 `targetArray` 中查找是否存在同 `id` 的对象。如果找不到,则返回 `false`,`filter()` 会保留当前对象。
阅读全文