第一种:indexOf方法
function unique(arr){ var tmpArr = []; for(var i=0; i<arr.length; i++){ if(tmpArr.indexOf(arr[i]) == -1){ // ==i也是一种方案 tmpArr.push(arr[i]); } } return tmpArr; }
第二种:hash
function unique(arr){ var tmpArr = [], hash = {}; for(var i=0;i<arr.length;i++){ if(!hash[arr[i]]){ hash[arr[i]] = true; tmpArr.push(arr[i]); } } return tmpArr; }
还是跟第一种有区别的。
第三种:排序
function unique(array){ array.sort(); var re=[array[0]]; for(var i = 1; i < array.length; i++){ if( array[i] !== re[re.length-1]){ re.push(array[i]); } } return re; }
第四种:ES5+ES6
function unique(arr){ var obj = {}; arr.forEach(function(item,index) { obj[item] = 1 }) return Object.keys(obj); }
第五种:ES6
Array.from(new Set([2,3,3,4,5]))
第六种:ES6
[...new Set([2,3,3,4,5])]
声明: 本文采用 BY-NC-SA 协议进行授权 | WEB开发分享
转载请注明转自《答案是丰富多彩的系列6:数组去重》