数组去重
方法一:先排序再双指针去重
function quchong(arr) {
if (arr.length <= 1) return arr;
arr.sort((a, b) => a - b);
let slow = 1;
for (let fast = 1; fast < arr.length; fast++) {
if (arr[fast] !== arr[fast - 1]) {
arr[slow++] = arr[fast];
}
}
return arr.slice(0, slow);
}
方法二:Set(最简)
function quchong(arr) {
return [...new Set(arr)];
}
补充
补充:原实现的最后一行
arr = arr.splice(left)直接把arr改成了「被切除的部分」,并且函数没有 return,外界拿到的是原数组本身。这里改为arr.slice(0, slow)并 return,结果正确且不修改入参数组。



