IT科技

當前位置 /首頁/IT科技 > /列表

數組去重的5種方法

數組去重的5種方法分別是使用“Array.from(new Set(arr))”去重;利用for嵌套for,接着使用splice()方法去重;利用indexOf()方法去重;利用includes()方法去重;利用filter()方法去重。

參考範例:

1、使用“Array.from(new Set(arr))”去重。

示例代碼為:

var arr = [1,1,8,8,12,12,15,15,16,16];

function unique (arr) {

  return Array.from(new Set(arr))

}

console.log(unique(arr))

 //[1,8,12,15,16]

數組去重的5種方法

2、利用for嵌套for,接着使用splice()方法去重。

示例代碼為:

var arr = [1, 1, 8, 8, 12, 12, 15, 15, 16, 16];

function unlink(arr) {

    for (var i = 0; i < arr.length; i++) {    // 首次遍歷數組

        for (var j = i + 1; j < arr.length; j++) {   // 再次遍歷數組

            if (arr[i] == arr[j]) {          // 判斷連個值是否相等

                arr.splice(j, 1);           // 相等刪除後者

                j--;

            }

        }

    }

    return arr

}

console.log(unlink(arr));

3、利用indexOf()方法去重。

示例代碼:

var arr = [1, 1, 8, 8, 12, 12, 15, 15, 16, 16];

function unlink(arr) {

    if (!Array.isArray(arr)) {

        console.log('錯誤!')

        return

    }

    var array = [];

    for (var i = 0; i < arr.length; i++) {    // 首次遍歷數組

        if (array.indexOf(arr[i]) === -1) {   // 判斷索引有沒有等於

            array.push(arr[i])

        }

    }

    return array

}

console.log(unlink(arr));

數組去重的5種方法 第2張

4、利用includes()方法去重。

示例代碼:

var arr = [1, 1, 8, 8, 12, 12, 15, 15, 16, 16];

function unique(arr) {

    if (!Array.isArray(arr)) {

        console.log('type error!')

        return

    }

    var array =[];

    for(var i = 0; i < arr.length; i++) {

            if( !array.includes( arr[i]) ) {//includes 檢測數組是否有某個值

                    array.push(arr[i]);

              }

    }

    return array

}

console.log(unique(arr))

5、利用filter()方法去重。

示例代碼:

var arr = [1, 1, 8, 8, 12, 12, 15, 15, 16, 16];

function unlink(arr) {

    return arr.filter(function (item, index, arr) {

        //當前元素,在原始數組中的第一個索引==當前索引值,否則返回當前元素

        return arr.indexOf(item, 0) === index;

    });

}

console.log(unlink(arr));

TAG標籤:數組 #