在前端开发中,经常会遇到需要对数组进行去重的情况。本文将介绍几种常见的JavaScript数组去重方法。
一、利用 ES6 的 Set 数据结构
ES6 中的 Set 是一种新的数据结构,它类似于数组,但是成员的值都是唯一的。
function uniqueArray(arr) {
return Array.from(new Set(arr));
}
const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = uniqueArray(arr);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
二、使用对象属性进行去重
可以利用对象的属性来判断元素是否已经出现过。
function uniqueArray(arr) {
const obj = {};
const result = [];
for (let i = 0; i < arr.length; i++) {
if (!obj[arr[i]]) {
obj[arr[i]] = true;
result.push(arr[i]);
}
}
return result;
}
const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = uniqueArray(arr);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
三、双层循环去重
通过双层循环遍历数组,判断当前元素是否在已去重的部分中重复出现。
function uniqueArray(arr) {
const result = [];
for (let i = 0; i < arr.length; i++) {
let isDuplicate = false;
for (let j = 0; j < result.length; j++) {
if (arr[i] === result[j]) {
isDuplicate = true;
break;
}
}
if (!isDuplicate) {
result.push(arr[i]);
}
}
return result;
}
const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = uniqueArray(arr);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
四、排序后去重
先对数组进行排序,然后遍历数组,比较相邻元素是否相同。
function uniqueArray(arr) {
arr.sort((a, b) => a - b);
const result = [arr[0]];
for (let i = 1; i < arr.length; i++) {
if (arr[i]!== arr[i - 1]) {
result.push(arr[i]);
}
}
return result;
}
const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = uniqueArray(arr);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
以上就是几种JavaScript数组去重的方法,每种方法都有其特点和适用场景,可以根据实际需求选择合适的方法。
173

被折叠的 条评论
为什么被折叠?



