let arr = [1,1,2,2,3,6,3,77,88,5,98,9,7,2,7,5,3,4,2]; function removeDup_indexOf(originalArr){ let newArr = []; for(n of originalArr){ if(newArr.indexOf(n)==-1){ newArr.push(n); } } return newArr; } let arr1 = removeDup_indexOf(arr);
也可首先将原始数组的第一项放到新数组中,从第二项开始循环判断:javascript
let arr = [1,1,2,2,3,6,3,77,88,5,98,9,7,2,7,5,3,4,2]; function removeDup_index(originalArr){ //index=0的项先加到数组里,以后从第二项开始循环 let newArr = [originalArr[0]]; for(var i=1;i<originalArr.length;i++){ if(originalArr.indexOf(originalArr[i])==i){ newArr.push(originalArr[i]); } } return newArr; } let arr2 = removeDup_index(arr);
let arr = [1,1,2,2,3,6,3,77,88,5,98,9,7,2,7,5,3,4,2]; function compareAdjoin(originalArr){ let orderedArr = originalArr.slice().sort();//先进行排序,而后相邻的数组元素进行比较 let newArr = [orderedArr[0]]; for(var i=1;i<orderedArr.length;i++){ if(orderedArr[i]!=orderedArr[i-1]){ newArr.push(orderedArr[i]); } } return newArr; } let arr3 = compareAdjoin(arr);
obj= { arr[1]: value,arr[2]:value...}
注意:无需关注value的值,可任意复制,仅是经过key判断元素是否已添加过。let arr = [1,1,2,2,3,6,3,77,88,5,98,9,7,2,7,5,3,4,2]; function removeDup_obj(originalArr){ let newArr=[]; let obj={}; for(n of originalArr){ if(!obj[n]){ obj[n] = 1; newArr.push(n); } } return newArr; } let arr4 = removeDup_obj(arr);
let arr = [1,1,2,2,3,6,3,77,88,5,98,9,7,2,7,5,3,4,2]; function removeDup_splice(originalArr){ let orderedArr = originalArr.slice().sort(); for(var i = orderedArr.length-1;i>0;i--){ if(orderedArr[i-1]===orderedArr[i]){ orderedArr.splice([i-1],1); } } return orderedArr; } let arr5 = removeDup_splice(arr);