JavaScript数组去重

36 阅读1分钟
  1. ES6提供的Set是一组唯一值的集合,每个值仅能出现一次
let arr = [5, 7, 8, 4, 1, 5, 2, 4, 1, 2, 3, 5, 4, 6, 7, 8, 9, 1];

function unique(array) {
    return Array.from(new Set(array));
};

unique(arr); //[5, 7, 8, 4, 1, 5, 2, 4, 1, 2, 3, 5, 4, 6, 7, 8, 9, 1]
  1. 使用两个for循环嵌套,搭配splice方法删除重复的值
let arr = [5, 7, 8, 4, 1, 5, 2, 4, 1, 2, 3, 5, 4, 6, 7, 8, 9, 1];

function unique(array) {
    for (let i = 0; i < array.length; i++) {
        for (let j = i + 1; j < array.length; j++) {
            if (array[i] == array[j]) {
                array.splice(j, 1);
                j--;
            }
        }
    }
    return array;
}

unique(arr); //[5, 7, 8, 4, 1, 5, 2, 4, 1, 2, 3, 5, 4, 6, 7, 8, 9, 1]
  1. 使用include将未重复的值添加到新数组中
let arr = [5, 7, 8,"小白", 4, 1, 5, 2, 4,"小白", 1, 2, 3, 5, 4, 6, 7, 8, 9, 1];
function unique(array) {
    let arr = [];
    array.forEach(item => {
        if (!arr.includes(item)) { 
            // 判断条件可用  arr.indexOf(item) == -1  代替
            arr.push(item)
        };
    })
    return arr;
}
unique(arr); //[5, 7, 8, '小白', 4, 1, 2, 3, 6, 9]