Avatar ·

如何从数组中删除重复项?最有效的方法

大家好!我是JavaScript新手,遇到了一个问题:我有一个包含数字的数组,其中有很多重复值。我需要只保留唯一元素。例如,有数组 `[1, 2, 2, 3, 4, 4, 5]`,我希望得到 `[1, 2, 3, 4, 5]`。 我尝试写了自己的函数,但运行不正确——要么没有删除所有重复项,要么直接破坏了数组。这是我的代码: ```javascript function removeDuplicates(arr) { for (let i = 0; i < arr.length; i++) { for (let j = i + 1; j < arr.length; j++) { if (arr[i] === arr[j]) { arr.splice(j, 1); } } } return arr; } ``` 问题在于使用 `splice` 后索引会偏移,导致我跳过了一些元素。而且我觉得这个解决方案对于大数组来说太慢了。 请问有哪些现代且高效的方法来删除重复项?我对简单类型(数字、字符串)的解决方案感兴趣。