const arr = [{column :[1,2],row:[3,4]},{column :[1,2],row:[3,4]}]; 使用reduce去重 结果为[{column :[1,2],row:[3,4]}]
时间: 2023-08-18 08:29:24 浏览: 61
一个数组去重的小程序
可以使用 `reduce` 方法和 `some` 方法来完成数组对象的去重。具体步骤如下:
1. 使用 `reduce` 方法遍历数组,将每个对象的属性拼接成字符串。
2. 判断字符串是否已存在于结果数组中,如果不存在则将当前对象添加到结果数组中。
以下是代码示例:
```javascript
const arr = [{column:[1,2],row:[3,4]},{column:[1,2],row:[3,4]}];
const result = arr.reduce((acc, cur) => {
const isExist = acc.some(item => {
return JSON.stringify(item.column) === JSON.stringify(cur.column) &&
JSON.stringify(item.row) === JSON.stringify(cur.row);
});
if (!isExist) {
acc.push(cur);
}
return acc;
}, []);
console.log(result); // [{column:[1,2],row:[3,4]}]
```
这里使用了 `JSON.stringify` 方法将属性数组转换为字符串进行比较,因为直接比较数组会返回 false。
阅读全文