Javascript,数组去重,set去重,map去重,included去重,indexOf去重,sort去重,filter去重,reduce去重
Javascript 数组去重方法
原数组
let arr = [1, 3, 4, 5, 9, 1, 3, 4, 0, 3, 7, 8, 6, 8];
01 使用 set 成员的唯一性
function uniqueArray(arr) {
return Array.from(new Set(arr));
}
console.log(uniqueArray(arr)); // [1, 3, 4, 5, 9, 0, 7, 8, 6]
02 使用 map 键的唯一性
function uniqueArray(arr) {
let map = new Map();
let ans = new Array();
for (let i = 0; i < arr.length; ++i) {
if (!map.has(arr[i])) {
// 此处可以 map 元素的 value 用不上可以是任意值
map.set(arr[i], i);
ans.push(arr[i]);
}
}
return ans;
}
console.log(uniqueArray(arr)); // [1, 3, 4, 5, 9, 0, 7, 8, 6]
03 使用 includes 方法
function uniqueArray(arr) {
var ans = [];
for (let i = 0; i < arr.length; ++i) {
if (!ans.includes(arr[i])) {
ans.push(arr[i]);
}
}
return ans;
}
console.log(uniqueArray(arr)); // [1, 3, 4, 5, 9, 0, 7, 8, 6]
04 使用 indexOf 方法
function uniqueArray(arr) {
var ans = [];
for (let i = 0; i < arr.length; ++i) {
if (arr.indexOf(arr[i]) == i) {
ans.push(arr[i]);
}
}
return ans;
}
console.log(uniqueArray(arr)); // [1, 3, 4, 5, 9, 0, 7, 8, 6]
05 使用 sort 方法
function uniqueArray(arr) {
var ans = [];
arr = arr.sort();
ans.push(arr[0]);
for (let i = 1; i < arr.length; ++i) {
if (arr[i] != arr[i - 1]) {
ans.push(arr[i]);
}
}
return ans;
}
console.log(uniqueArray(arr)); // [0, 1, 3, 4, 5, 6, 7, 8, 9]
06 使用 filter 方法
function uniqueArray(arr) {
return arr.filter((item, index) => {
return arr.indexOf(item) == index;
})
}
console.log(uniqueArray(arr)); // [1, 3, 4, 5, 9, 0, 7, 8, 6]
07 使用 reduce 方法
function uniqueArray(arr) {
return arr.reduce((ans, item, index) => {
if (arr.indexOf(item) == index) {
ans.push(item);
}
return ans;
}, []);
}
console.log(uniqueArray(arr)); // [1, 3, 4, 5, 9, 0, 7, 8, 6]