📌  相关文章
📜  获取唯一数组 javascript (1)

📅  最后修改于: 2023-12-03 14:57:14.065000             🧑  作者: Mango

获取唯一数组javascript

在JavaScript中,有时我们需要获取一个数组中的唯一值,即去重。这可以通过一些简单的方法来实现。下面是一些基本的方法来获取唯一数组:

1. 使用Set

使用Set是最常用的方法来获取唯一数组。Set是ES6中新增的数据结构,它可以存储任何类型的值,并且保证所有值都是唯一的。

const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4, 5]
解析

上面的代码将原始数组转换为Set,然后使用展开运算符(spread operator)将Set转换为数组。如此一来,就可以获取到唯一数组。

2. 使用filter

使用filter也可以实现去重。具体来说,创建一个新数组,然后遍历原始数组,如果当前值不在新数组中,就将其添加到新数组中。

const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = arr.filter((value, index, array) => {
    return array.indexOf(value) === index;
});
console.log(uniqueArr); // [1, 2, 3, 4, 5]
解析

上面的代码使用了Array.prototype.filter()方法,将数组的每一个元素传递给回调函数,如果元素在数组中的位置和原始位置相同,则保留该元素。否则删除该元素,最终返回一个新的去重后的数组。

3. 使用reduce

使用reduce也是一种获取唯一数组的方法。具体来说,遍历原始数组,用一个空数组来存储不重复的值,然后返回这个数组。

const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = arr.reduce((prev, current) => {
    if (!prev.includes(current)) {
        return prev.concat(current);
    } else {
        return prev;
    }
}, []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
解析

上面的代码使用了Array.prototype.reduce()方法,它接收一个回调函数和一个初始值。回调函数接收四个参数:前一项,当前项,当前项索引和原数组。初始值必须是一个空数组。如果当前项不在前一项的数组中,则将当前项添加到前一项的数组中。

总之,这三种方法都可以很容易地获取唯一数组。你可以尝试使用其中的一种或多种方法来处理你的数据。