数组去重
JavaScript数组去重
let arr = "1, 2, 3, 1, 2, 5, 8, '1', '2', 3" function unique(arr) { // 方法一 let res = [] for (let i = 0, len = arr.length; i < len; i++) { let item = arr[i] if (res.indexOf(item) === -1) res.push(item) } return res // 方法二 return arr.filter(function (item, index, array) { return array.indexOf(item) === index }) // 方法三 let res = [] for (let i = 0, len = arr.length; i < len; i++) { for (let j = i + 1; j < len; j++) { // 这一步十分巧妙 // 如果发现相同元素 // 则 i 自增进入下一个循环比较 if (arr[i] === arr[j]) j = ++i } res.push(arr[i]) } return res // 方法四 return Array.from(new Set(arr)) // 方法五 let hashmap = {}; let res = []; for(let i = 0; i < arr.length; i++) { // If key returns null (res), it is evaluated as false. if(!hashmap.hasOwnProperty([arr[i]])) { hashmap[arr[i]] = ''; res.push(arr[i]); } } return res }