对象数组去重方法

2024-12-03

假设有个数组:

let arr = [
{
code: ‘1’,
name: ‘大于’
},
{
code: ‘2’,
name: ‘小于’
},
{
code: ‘3’,
name: ‘大于等于’
},
{
code: ‘4’,
name: ‘小于等于’
},
{
code: ‘1’,
name: ‘大于’
},
{
code: ‘2’,
name: ‘小于’
},
{
code: ‘5’,
name: ‘包含’
},
{
code: ‘4’,
name: ‘小于等于’
}
]

列举几个去重方法:
1、reduce方法一
const result = arr.reduce((pre, cur) => {
if (!pre.find((item) => item.code === cur.code)) {
pre.push(cur)
}
return pre
}, [])

2、reduce方法二
let obj = {}
const result = arr.reduce((pre, cur) => {
obj[cur.code] ? ” : (obj[cur.code] = true && pre.push(cur))
return pre
}, [])

3、forEach + find

const result = [];
arr.forEach(item => {
if (!result.find(i => i.code === item.code)) {
result.push(item);
}
});

4、 forEach + some
const result = [];
arr.forEach(item => {
if (!result.come(i => i.code === item.code)) {
result.push(item);
}
});

发表评论

邮箱地址不会被公开。 必填项已用*标注