arr=[{name:'北京',value:1}],arr1=[{name:'北京',value:0}],js 对比arr和arr1 去除name相同且value为0的对象
时间: 2024-04-30 08:24:41 浏览: 69
js脚本数组,对象,字符对比是否相同
可以使用 Array.prototype.filter() 方法来实现:
```javascript
const arr = [{name:'北京',value:1}];
const arr1 = [{name:'北京',value:0}];
const result = arr.filter(item => {
const matchItem = arr1.find(i => i.name === item.name);
return !matchItem || (matchItem.value !== 0 && item.value !== 0);
});
console.log(result); // [{name:'北京',value:1}]
```
首先使用 filter() 方法对 arr 进行筛选,返回一个新数组,然后在回调函数中使用 find() 方法找到 arr1 中与当前元素 name 属性相同的对象,判断其 value 值是否为 0,若为 0 则不符合条件,否则符合条件。如果没有找到相同的元素,则直接返回当前元素。最终得到的结果就是去除了 name 相同且 value 为 0 的对象的数组。
阅读全文