js数组去重

在JavaScript中,有很多方法可以用来去除数组中的重复项。以下是一些常见的方法:

方法一:使用Set

Set是ES6中的新数据类型,它只存储唯一值。因此,我们可以利用这一特性来去重。

let array = [1, 2, 3, 2, 1, 4, 3, 5, 4];
let uniqueArray = [...new Set(array)];
console.log(uniqueArray);  // 输出:[1, 2, 3, 4, 5]

方法二:使用Array.prototype.filter

可以通过filter方法,根据数组中元素的唯一性来过滤出重复的元素。

let array = [1, 2, 3, 2, 1, 4, 3, 5, 4];
let uniqueArray = array.filter((value, index, self) => {
    return self.indexOf(value) === index;
});
console.log(uniqueArray);  // 输出:[1, 2, 3, 4, 5]

方法三:使用Array.prototype.reduce

还可以通过reduce方法,将数组转换成一个对象,对象的键是数组中的元素,值是该元素出现的次数。然后,通过过滤出值为1的键,取得去重后的数组。

let array = [1, 2, 3, 2, 1, 4, 3, 5, 4];
let uniqueArray = array.reduce((acc, curr) => {
    acc[curr] = (acc[curr] || 0) + 1;
    return acc;
}, {});

let result = Object.keys(uniqueArray).filter(key => uniqueArray[key] === 1);
console.log(result);  // 输出:[1, 2, 3, 4, 5]

这些方法中,使用Set的方法最简洁,但是如果你需要在去重后的数组中保留元素的原始顺序,那么使用filter方法可能更适合你。

你可能感兴趣的:(javascript,前端,vue.js)