应用1-去重
1.使用 filter,见 01_filter.js
2.简单数组 见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);