87-删除数组元素注意点

  • 需求: 遍历数组的同时删除数组中所有的元素
    • 通过传统遍历数组的方式
      • 弊端: 删除不尽元素
          let arr = [1, 2, 3, 4, 5];
          console.log(arr);  // [1, 2, 3, 4, 5]
      
          //       0     0 < 5
          //       1     1 < 4
          //       2     2 < 3
          //       3     3 < 2
          // 删除不尽是因为在数组中删除一个元素, 后面的元素会自动往前挪动
          for (let i =0; i < arr.length; i++){
              arr.splice(i, 1);
          }
          console.log(arr);  // [2,  4]
      
    • 从后往前删
          let arr = [1, 2, 3, 4, 5];
          console.log(arr);  // [1, 2, 3, 4, 5]
      
          let len = arr.length
          for (let i = len - 1; i >= 0; i--){
              arr.splice(i, 1);
          }
          console.log(arr);  // []
      
    • 通过 delete 删除 (推荐)
      • 注意点: 通过 delete 来删除数组中的元素, 数组的 length 属性不会发生变化

          let arr = [1, 2, 3, 4, 5];
          console.log(arr);  // [1, 2, 3, 4, 5]
        
          for (let i = 0; i < arr.length; i++){
              // 注意点: 通过 delete 来删除数组中的元素, 数组的 length 属性不会发生变化
              delete arr[i];
          }
          console.log(arr);  // [empty × 5]
        

你可能感兴趣的:(87-删除数组元素注意点)