vue 两个数组对象根据参数去重
时间: 2023-12-04 11:02:45 浏览: 105
vue中对象数组去重的实现
假设有两个数组对象,如下所示:
```javascript
let arr1 = [
{ id: 1, name: 'foo' },
{ id: 2, name: 'bar' },
{ id: 3, name: 'baz' },
{ id: 4, name: 'qux' }
]
let arr2 = [
{ id: 2, name: 'bar' },
{ id: 4, name: 'qux' },
{ id: 5, name: 'quux' }
]
```
可以使用 `filter()` 和 `some()` 方法来实现根据 `id` 去重,代码如下:
```javascript
let result = arr1.concat(arr2).filter((item, index, arr) => {
return !index || item.id !== arr[index-1].id
})
console.log(result)
```
输出结果为:
```javascript
[
{ id: 1, name: 'foo' },
{ id: 2, name: 'bar' },
{ id: 3, name: 'baz' },
{ id: 4, name: 'qux' },
{ id: 5, name: 'quux' }
]
```
其中,`concat()` 方法用于合并两个数组,`filter()` 方法用于过滤重复的数组对象。在 `filter()` 方法中,使用 `some()` 方法判断当前元素是否与前一个元素的 `id` 相同,如果相同则过滤,否则保留。
阅读全文