在前端开发中,经常会遇到需要对数组进行去重的情况。本文将介绍几种常见的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数组去重的方法,每种方法都有其特点和适用场景,可以根据实际需求选择合适的方法。