26.1 遍历移除法
26.1.1 核心思路
- 核心部分(从第几位开始删除指定个数的数据)
- 参数(第几位开始,删除的个数)
- array.splice(index,count)
- 该方法会改变原始数组。
- 返回去掉删除的元素之外的数据
26.1.2 代码块
var nums = [1,1,2,2];
for(var i = 0 ; i < nums.length ; i++){
if(nums[i] === nums[i+1]){
nums.splice(i,1);
i--;
}
}
console.log(nums)
console.log(nums.length)
26.2 双指针法
26.2.1 核心思路
- 将数组后面的元素转换为前面重复的元素
- 逐步前进
- 定义起点两个元素 a b
- a b 最开始都在起点
- b 进入数组 停在第一个元素位置
- a 继续前进 将 a 所处位置的元素与 b 中的元素进行对比
- nums [ b ] !== nums[ a ]
- b++
- 此时 b 位置的元素就是 a 所处位置的元素大小
- nums[b] == nums[a]
26.2.2 代码块
var nums = [2,2,4,4,6];
for(var a = 0, b = 0; a < nums.length ; a++){
if(nums[j] !== nums[i]){
b++;
nums[b] = nums[a];
}
}
console.log(b+1);