JavaScript学习笔记—数组去重实例

编写代码去除数组中重复的元素

const arr = [1,2,1,3,2,2,4,5,5,6,7];
// 分别获取数组中的元素
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);
      /*
       当arr[i]和arr[j]相同时,会删除j位置的元素,然后j+1位置的元素,会变成j位置的元素,而j位置已经比较过了,不会重复比较,所以会出现漏比较的情况
       解决办法:当删除一个元素后,需要将该位置的元素再比较一遍
      */
      j--;
    }
  }
}
console.log(arr);

简便方法:

const arr = [1,2,1,3,2,2,4,5,5,6,7];
// 分别获取数组中的元素
for(let i = 0; i < arr.length; i++) {
  const index = arr.indexOf(arr[i], i+1);
  if(index !== -1){
    // 出现重复内容
    arr.splice(index, 1);
    i--;
  }
}
console.log(arr);

不破坏原数组的简便方法:

const arr = [1,2,1,3,2,2,4,5,5,6,7];
const newArr = [];
// 分别获取数组中的元素
for(let ele of arr) {
  if(newArr.indexOf(ele) === -1){
    newArr.push(ele);
  }
}
console.log(newArr);
posted @ 2023-01-23 00:15  程序员张3  阅读(17)  评论(0编辑  收藏  举报