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]
        
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载:在开发中,数组的使用场景非常多,平日中也涉及到很多数组的api/相关操作,一直也没有对这块内容进行一块整理总...
    七色烟火阅读 8,492评论 0 3
  • 1.用js实现随机选取10~100之间的10个数字,存入一个数组,并排序 //要是获取不重复的,则对随机数...
    persistlu阅读 10,951评论 0 0
  • 一直以来,Spring系列给人的感觉都是快速,简洁,好理解,易操作.但Security是一个特例,这个框架相比而言...
    熵增学院阅读 4,911评论 1 2
  • 适配iOS10以及Xcode8 21个高质量的Swift开源iOS App iOS10推送必看UNNotifica...
    小丑不会笑阅读 2,880评论 0 0
  • 丁酉之春,三月既望,余赴江夏谋事。至午,奔夏口,欲览黄鹤️①之雄,以偿多年之冀。 纳金置凭,方可入山。山门在东,有...
    大侠霍元乙阅读 3,795评论 27 26