-
set 方法去重
let arr = [1, 5, 3, 3, 5] console.log([...new Set(arr)]) // [1, 5, 3] console.log(Array.from(new Set(arr))); // [1, 5, 3] -
双重for循环+ splice()
let arr = [1, 5, 3, 3, 5] for (let i = 0; i < arr.length; i++) { for (let j = i + 1; j < i + arr.length; j++) { if (arr[i] === arr[j]) { arr.splice(j, 1) j-- } } } console.log(arr); // [1, 5, 3] -
双重for循环 + 开关思想
let arr = [1, 5, 3, 3, 5] let newArr = [] for (let i = 0; i < arr.length; i++) { let falg = true for (let j = 0; j < newArr.length; j++) { if (arr[i] === newArr[j]) { falg = false break } }; if (falg) { newArr.push(arr[i]) } }; console.log(newArr); // [1, 5, 3] -
利用filter() + indexOf()
let arr = [1, 5, 3, 3, 5] const res = arr.filter((item, index) => { return arr.indexOf(item) == index }) console.log(res); // [1, 5, 3] -
利用for循环 + indexOf()
let arr = [1, 5, 3, 3, 5] let newArr = [] for (let i = 0; i < arr.length; i++) { if (newArr.indexOf(arr[i]) === -1) { newArr.push(arr[i]) } }; console.log(newArr); // [1, 5, 3] -
利用 map 数据结构去重
let arr = [1, 2, 3, 4, 3, 2, 3, 4, 6, 7, 6] let unique = (arr) => { let seen = new Map() return arr.filter((item) => { return !seen.has(item) && seen.set(item, 1) }) } console.log(unique(arr)); // [1, 2, 3, 4, 6, 7]