首页 经验

数组去重

时间: 2024-10-20 08:58:06

(部分内容来自网络,其真实性存疑,为了避免对您造成误导,请谨慎甄别。)


在 JavaScript 中,去重数组是一个常见任务,通常有多种方法可以实现。下面介绍几种常用的数组去重方法。


1. 使用 Set


Set 是一种特殊的数据结构,保证其值唯一。通过将数组传入 Set,然后再转换回数组,可以轻松实现去重。


javascript

const array = [1, 2, 2, 3, 4, 4, 5];

const uniqueArray = [...new Set(array)];


console.log(uniqueArray); // Output: [1, 2, 3, 4, 5]


2. 使用 filter 方法


filter 方法可以用于创建一个新数组,包含所有通过指定测试条件的元素。在这里,测试条件确保每个元素在新数组中只出现一次。


javascript

const array = [1, 2, 2, 3, 4, 4, 5];

const uniqueArray = array.filter((item, index) => array.indexOf(item) === index);


console.log(uniqueArray); // Output: [1, 2, 3, 4, 5]


3. 使用 reduce 方法


可以使用 reduce 方法手动构建一个不重复的数组。


javascript

const array = [1, 2, 2, 3, 4, 4, 5];

const uniqueArray = array.reduce((acc, item) => {

    if (!acc.includes(item)) {

        acc.push(item);

    }

    return acc;

}, []);


console.log(uniqueArray); // Output: [1, 2, 3, 4, 5]


4. 使用 forEach 和一个对象


可以使用 forEach 方法遍历数组,同时利用对象的属性唯一性来实现去重。


javascript

const array = [1, 2, 2, 3, 4, 4, 5];

const uniqueObject = {};

const uniqueArray = [];


array.forEach(item => {

    if (!uniqueObject[item]) {

        uniqueObject[item] = true;

        uniqueArray.push(item);

    }

});


console.log(uniqueArray); // Output: [1, 2, 3, 4, 5]


5. 使用 splice 方法 (在原数组上操作)


如果你希望在原始数组上进行修改,可以使用 splice 来直接去重。


javascript

const array = [1, 2, 2, 3, 4, 4, 5];


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--; // 调整索引

        }

    }

}


console.log(array); // Output: [1, 2, 3, 4, 5]


总结


上述方法各有优缺点,选择哪种方式去重取决于特定的需求和数据规模。通常来说,使用 Set 是最简单和最高效的方式,而 filterreduce 方法在处理较小的数组时也是很常用的。对于大型数组和性能敏感的场合,建议选择 Set 或对象方式。


上一个 localstorage 文章列表 下一个 js indexof

最新

工具

© 2019-至今 适观科技

沪ICP备17002269号