js中数组去重的方法
原创
JS中数组去重的方法
在JavaScript中,数组去重是一个常见的需求。本文将介绍几种常见的数组去重方法。
1. 利用Set对象
ES6中的Set对象是一种新的数据结构,可以存储任何类型的唯一值。利用这个特性,可以很容易地实现数组去重。
function uniqueArray(array) {
return [...new Set(array)];
}
const array = [1, 2, 2, 3, 4, 4, 5];
console.log(uniqueArray(array)); // 输出:[1, 2, 3, 4, 5]
2. 利用filter方法
通过数组的filter方法,可以遍历数组,并返回一个新数组,其中包含符合条件的元素。
function uniqueArray(array) {
return array.filter((item, index) => {
return array.indexOf(item) === index;
});
}
const array = [1, 2, 2, 3, 4, 4, 5];
console.log(uniqueArray(array)); // 输出:[1, 2, 3, 4, 5]
3. 利用reduce方法
reduce方法可以对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其于是汇总为单个返回值。
function uniqueArray(array) {
return array.reduce((unique, item) => {
return unique.includes(item) ? unique : [...unique, item];
}, []);
}
const array = [1, 2, 2, 3, 4, 4, 5];
console.log(uniqueArray(array)); // 输出:[1, 2, 3, 4, 5]
4. 利用对象属性
利用对象的属性,可以存储数组中每个元素的唯一标识。这种方法在处理大数据集时高效较高。
function uniqueArray(array) {
const uniqueObj = {};
const uniqueArray = [];
for (let i = 0; i < array.length; i++) {
if (!uniqueObj[array[i]]) {
uniqueObj[array[i]] = true;
uniqueArray.push(array[i]);
}
}
return uniqueArray;
}
const array = [1, 2, 2, 3, 4, 4, 5];
console.log(uniqueArray(array)); // 输出:[1, 2, 3, 4, 5]
总结
本文介绍了四种常见的数组去重方法,包括利用Set对象、filter方法、reduce方法和对象属性。在实际开发中,可以基于需求和数据规模选择合适的方法。