数组中是对象
举例数据:
清除掉name
重复的数据
const array = [
{name:'张三',age:20},
{name:'李四',age:30},
{name:'张三',age:21},
{name:'王五',age:25},
];
1.用reduce方法
const filteredArray = array.reduce((acc, curr) => {
const found = acc.some(item => item.name === curr.name);
if (!found) {
acc.push(curr);
}
return acc;
}, []);
2.用filter方法
const filteredArray = array.filter((item, index, arr) => {
return arr.findIndex(t => t.name === item.name) === index;
});
3.使用对象键值对
const filteredArray = Object.values(array.reduce((acc, curr) => {
acc[curr.name] = curr;
return acc;
}, {}));
4.使用Map数据结构
const map = new Map();
array.forEach(item => {
map.set(item.name, item);
});
const filteredArray = Array.from(map.values());
数组中不是对象
1.使用Set数据结构
const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = [...new Set(array)];
console.log(uniqueArray); // Output: [1, 2, 3, 4, 5]
2.使用indexOf和filter方法
const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = array.filter((item, index) => array.indexOf(item) === index);
console.log(uniqueArray); // Output: [1, 2, 3, 4, 5]
3.使用reduce方法
const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = array.reduce((acc, curr) => {
if (!acc.includes(curr)) {
acc.push(curr);
}
return acc;
}, []);
console.log(uniqueArray); // Output: [1, 2, 3, 4, 5]
4.使用对象键值对
const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = Object.keys(array.reduce((acc, curr) => {
acc[curr] = true;
return acc;
}, {}));
console.log(uniqueArray); // Output: ["1", "2", "3", "4", "5"]