数组去重的几种方式 发表于 2017-09-15 一:遍历数组去重 123456789101112function arrays(arr){ var list = []; arr.forEach((item)=>{ if(!list[item]){ list.push(item) } }) return list}var a = [1,2,4,6,'erw','wee',1,2,3,4,4,4];console.log(arrays(a)) 二:对象键值对匹配去重 1234567891011121314151617function arrays(arr){ var obj = {},list = [],v,type; arr.forEach((item,index)=>{ type = typeof item; if(!obj[item]){ obj[item] = type; list.push(item) }else if(obj[item].indexOf(type) < 0){ obj[item].push(type); list.push(item) } }) return list}var a = [1,2,4,6,'erw','wee',1,2,3,4,4,4];console.log(arrays(a)) 三:数组排序后判断相邻是否相等 1234567891011121314function arrays(arr){ arr.sort(); let l = arr.length; var array = [arr[0]]; for(let i = 1; i < l, i++){ if(arr[i] !== arr[i-1]){ array.push(arr[i]) } } return array;}var a = [1,2,4,6,'erw','wee',1,2,3,4,4,4];console.log(arrays(a)) 四:获取最右值放入新数组 123456789101112 function arrays(array){ var r = []; for(var i = 0, l = array.length; i < l; i++) { for(var j = i + 1; j < l; j++) if (array[i] === array[j]) j = ++i; r.push(array[i]); } return r; } var a = [1,2,4,6,'erw','wee',1,2,3,4,4,4]; console.log(arrays(a))