function (a,b){return a - b} //用户的输入 var user_input = '34672268943'; var user_input_arr = user_input.split(''); console.log('user_input_arr sort before',user_input_arr); user_input_arr.sort(order); console.log('user_input_arr after',user_input_arr);
var arr_original = [1,2,3,4,2,4,,6,8,9,'1']; var arr_unique = [];
//方法一,利用 Set 新特性,没有重复的集合 // NaN这货虽然有不全等的特性,在Set里面认为是相同的,所以只能有一个 var set = 大专栏 面试笔试题总结20170510>newSet(arr_original); arr_unique = Array.from(set); console.log('arr_unique',arr_unique);
//方法二,利用indexOf 方法 var i = 0; for(;i<arr_original.length;i++){ var value = arr_original[i]; if(arr_unique.indexOf(value) == -1){ arr_unique.push(value); } } //方法三,数组下标判断法,如果当前数组的第i项在当前数组中第一次出现的位置不是i,那么表示第i项是重复的,忽略掉。否则存入结果数组 var i = 0; for(;i<arr_original.length;i++){ var value = arr_original[i]; if(arr_original.indexOf(value === i )){ arr_unique.push(value); } } //方法四,利用数组的includes 方法, var i = 0; for(;i<arr_original.length;i++){ var value = arr_original[i]; if(!arr_unique.includes(value)){ arr_unique.push(value); } }
console.log('arr_unique',arr_unique);
还有其他的去重的方法,在这就不一一列出来了
去重时需注意 var aa = [{},{},NaN,null,undefined,null,undefined] aa.indexOf({}) //-1; aa.includes({}) //false aa.indexOf(NaN) //-1; aa.includes(NaN) //true aa.indexOf(null) //3 ; aa.includes(null) //false aa.indexOf(undefined) //4;//aa.includes(undefined) //true
有上面得出: indexOf能去重不包含 {}和 NaN的 includes 和 Set能去重不包含 {}的