let arr = [12, 12, '12', '12', 'abc', true, null, undefined, undefined,
[1, 2, 3], [1, 2, 3], [4, 5, 6, 12], {x:1, y: 2}, {x:1, y: 2, z: 3}, function aa () {}, function aa () {}];
// 数组原生方法
function filter (data) {
let arr = [];
data.forEach((item, index) => {
if (arr.indexOf(item) == -1) {
arr.push(item);
}
});
return arr;
}
// json的key不可重复 [12, '12']
function filter (data) {
let obj = {};
let arr = [];
data.forEach((item, index) => {
if (item instanceof Object) {
arr.push(item);
} else {
let type = typeof item;
if (!obj[type + '|||' + item]) {
obj[type + '|||' + item] = 1;
arr.push(item);
}
}
});
return arr;
}
// set方法
function filter (data) {
let set = new Set(data);
let arr = [...set];
return arr;
}
// Map方法
function filter (data) {
let map = new Map;
let arr = [];
data.forEach((item, index) => {
if (!map.get(item)) {
map.set(item, 1);
arr.push(item);
}
});
return arr;
}
console.log(filter(arr));
javascript数组去重
最新推荐文章于 2024-05-17 18:03:51 发布