Set 去重
const arr = [1, 2, 3, 5, 1, 5, 9, 1, 2, 8];
const arr1 = Array.from(new Set(arr))
console.log(arr1);
手写去重
function uniqueArray(nums) {
let map = new Map();
let res = [];
for (let num of nums) {
if (map.has(num)) {
map.set(num, true)
} else {
map.set(num, false)
res.push(num)
}
}
return res;
}
const arr = [1, 2, 3, 5, 1, 5, 9, 1, 2, 8];
console.log(uniqueArray(arr))
找到数组中重复的数
function findRepeat(nums) {
let res = [];
let map = new Map()
for (let num of nums) {
map.set(num, map.has(num))
}
for (let [key, value] of map.entries()) {
if (value === true) {
res.push(key);
}
}
return res;
}
const arr = [1, 2, 3, 5, 1, 5, 9, 1, 2, 8];
console.log(findRepeat(arr));
数组中第一个非重复的数
function findFirstNoRepeat(nums) {
let res = []
let map = new Map()
for (let num of nums) {
map.set(num, map.has(num));
}
for (let [key, value] of map.entries()) {
if (value === false) {
return key;
}
}
return "全部重复"
}
const arr = [1, 2, 3, 5, 1, 5, 9, 1, 2, 8];
console.log(findFirstNoRepeat(arr));