js数组去重

1、遍历数组法(这是最简单的一种)

  思路:新建一个数组,遍历传入的数组,值不在新数组就加入该新数组中。

function test(arr) {
    var newArr = [];
    for(var i = 0; i < arr.length; i++) {
        if(newArr.indexOf(arr[i]) === -1) {
            newArr.push(arr[i]);
        }
    }
    return newArr;
}

2、数组下标判断法

  思路:遍历传入的数组,调用indexOf方法,如果第 i 项在当前数组中第一次出现的位置不是i,那么表示第 i 项是重复的,忽略掉,否则存入新数组。

function test1(arr) {
    var newArr = [];
    for(var i = 0; i < arr.length; i++) {
        if (arr.indexOf(arr[i]) === i) {
            newArr.push(arr[i]);
        }
    }
    return newArr;
}

3、排序后相邻去除法

  思路:借用原生数组的sort方法给传入数组排序,排序后相同的值相邻,遍历排序后的数组,如果不与新数组的最后一项相同,则存入新数组。

function test2(arr) {
    arr.sort();
    var newArr = [arr[0]];
    for(var i = 1; i < arr.length; i++) {
        if (arr[i] !== newArr[newArr.length - 1]) {
            newArr.push(arr[i]);
        }
    }
    return newArr;
}

 

posted @ 2017-06-21 17:49  郑庙华  阅读(133)  评论(0编辑  收藏  举报