javascript数组去重的方法

2019-04-04  本文已影响0人  原来是禽兽

1、最简单的方法

var arr = [1,13,24,11,11,14,1,2];
var newArr= [];
for( var i=0; i<arr.length; i++ ) {
    if( newArr.indexOf(arr[i]) === -1 ) {
    newArr.push(arr[i]);
    }
}
 // newArr:  [1, 13, 24, 11, 14, 2]

2、第一种方法的变种(使用对象属性)

var arr = [1,13,24,11,11,14,1,2];
var obj = {};
var newArr = [];
for( var i=0; i<arr.length; i++ ) {
    if( !obj[arr[i]] ) {
        obj[arr[i]] = true;
        newArr.push(arr[i]);
    }
}
 // newArr:  [1, 13, 24, 11, 14, 2]

3、又一个变种方法(使用sort方法)

var arr = [1,13,24,11,11,14,1,2,1];
arr.sort();
var newArr = [];
for( var i=0; i<arr.length; i++ ) {
    if( newArr[newArr.length-1] !== arr[i] ) {
        newArr.push(arr[i]);
    }
}
 // newArr:  [1, 13, 24, 11, 14, 2]

4、使用嵌套循环

var arr = [1,13,24,11,11,14,1,2,1];
for( var i=0, len = arr.length; i<len; i++ ) {
    for( var j=i+1; j<len; j++  ) {
        if( arr[i] === arr[j] ) {
            arr.splice(j, 1);
        }
    }
}
 // newArr:  [1, 13, 24, 11, 14, 2]

5、使用Set对象:

var arr = [1,13,24,11,11,14,1,2];
var newArr = Array.from(new Set(arr));
 // newArr:  [1, 13, 24, 11, 14, 2]

后续有有意义的继续更新

上一篇 下一篇

猜你喜欢

热点阅读