在 JavaScript 中,有多种方法可以对数组进行去重。以下是一些建议的方法,以及它们的优缺点:
- 使用 Set
function uniqueArray(arr) { return [...new Set(arr)]; }
优点:简洁,易读。 缺点:Set 是 ES6 新引入的数据结构,不支持旧版浏览器。
- 使用 filter
function uniqueArray(arr) { return arr.filter((item, index) => { return arr.indexOf(item) === index; }); }
优点:兼容性好,适用于所有版本的 JavaScript。 缺点:代码相对较长。
- 使用 reduce
function uniqueArray(arr) { return arr.reduce((accumulator, currentValue) => { if (!accumulator.includes(currentValue)) { accumulator.push(currentValue); } return accumulator; }, []); }
优点:兼容性好,适用于所有版本的 JavaScript。 缺点:代码相对较长。
- 使用双重循环
function uniqueArray(arr) { const result = []; for (let i = 0; i < arr.length; i++) { let isUnique = true; for (let j = i + 1; j < arr.length; j++) { if (arr[i] === arr[j]) { isUnique = false; break; } } if (isUnique) { result.push(arr[i]); } } return result; }
优点:兼容性好,适用于所有版本的 JavaScript。 缺点:代码冗长,效率较低。
根据你的需求和浏览器兼容性要求,可以选择合适的方法进行数组去重。在现代浏览器中,推荐使用 Set 方法,因为它简洁且高效。