Skip to main content

应用1-去重

1.使用 filter,见 01_filter.js

filter-过滤函数

2.简单数组 见set

set数据类型

3.对象数组去重


const uniqueArr = (array, key) => {
let obj = {}
const arrays = array.reduce((setArr, item) => {
obj[item[key]] ? '' : (obj[item[key]] = true && setArr.push(item))
return setArr
}, [])
return arrays
}

reduce

参数: reduce(上一个并归值,当前项,当前项的索引,数组本身)

// 例:使用reduce()函数执行累加数组中所有数组的操作
let values = [1,2,3,4,5,6];
let sum = values.reduce((prev, cur, index, array) => prev + cur);
console.log(sum) // 打印出21

对象数组去重

const test = [
{
"id": "1350142984379867701",
"value": "0825"
},
{
"id": "1350074195264053803",
"value": "测试注销人群包"
},
{
"id": "1348709718386975263",
"value": "zwz专属0809"
},
{
"id": "1350142984379867701",
"value": "0825"
},
{
"id": "1350074195264053803",
"value": "测试注销人群包"
}
]

// 去重函数
function removeDuplicates(array, key) {
return Array.from(new Set(array.map(item => item[key]))).map(keyValue => array.find(item => item[key] === keyValue));
}

// 对 "id" 属性进行去重
const uniqueArray = removeDuplicates(test, "id");
console.log(uniqueArray);
const test = [
{
"id": "1350142984379867701",
"value": "0825"
},
{
"id": "1350074195264053803",
"value": "测试注销人群包"
},
{
"id": "1348709718386975263",
"value": "zwz专属0809"
},
{
"id": "1350142984379867701",
"value": "0825"
},
{
"id": "1350074195264053803",
"value": "测试注销人群包"
}
]

function removeDuplicates(array, key) {
const uniqueKeys = new Set();
const uniqueArray = [];

array.forEach(item => {
const keyValue = item[key];
if (!uniqueKeys.has(keyValue)) {
uniqueKeys.add(keyValue);
uniqueArray.push(item);
}
});

return uniqueArray;
}

// 对 "id" 属性进行去重
const uniqueArray = removeDuplicates(test, "id");
console.log(uniqueArray);