1.Set
function arr(arr){
return Array.from(new Set(arr));
//return Array.prototype.slice.call(new Set(arr));
//return [].slice.call(new Set(arr));
}
2.filter()
function arr(arr){
arr.filter(function(value,index,arr){
return arr.indexOf(value,0) === index;
})
3.indexOf()
function arr(arr){
var array = [];
for (var i = 0; i < arr.length; i++) {
if (array .indexOf(arr[i]) === -1) {
array .push(arr[i])
}
}
return array;
}
4.includes()
function arr(arr){
var array = [];
for (var i = 0; i < arr.length; i++) {
if( !array.includes( arr[i]) ) {//includes 检测数组是否有某个值
array .push(arr[i])
}
}
return array;
}
5.利用for嵌套for,然后splice去重(ES5中最常用)
function arr(arr){
for(var i=0;i<arr.length;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[j] == arr[i]){
arr.splice(j,1);
j--;// 必须对j减去1,否则后面的一个元素会被跳过去
}
}
}
return arr;
}
6.利用sort()
function unique(arr) {
if (!Array.isArray(arr)) {
console.log('type error!')
return;
}
arr = arr.sort()
var arrry= [arr[0]];
for (var i = 1; i < arr.length; i++) {
if (arr[i] !== arr[i-1]) {
arrry.push(arr[i]);
}
}
return arrry;
}
网友评论