数组塌陷问题

先举个小栗子

我们想用一个循环,把数组中的每一项都删掉,但是出现了问题,循环结束后,并没有全部删除。

let arr = [1,2,3]
for(let i=0;i<arr.length;i++){
   arr.splice(i,1)
}
console.log(arr)    //  [2]

解释:
第一次循环,i=0 ; arr.length=2; 循环后,删除第一项
此时,数组变为[2,3];
继续第二次循环,i=1 ; arr.length=2 循环后,删除第二项
此时发现,数组的第二项是数字3;把第二项删除,最后剩一个数字2
所以:
循环每结束一次,删除一项,数组的length以及每一项的下标都会改变,
最后导致达不到预期的效果

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.用js实现随机选取10~100之间的10个数字,存入一个数组,并排序 //要是获取不重复的,则对随机数...
    persistlu阅读 11,019评论 0 0
  • 第四天 数组【悟空教程】 第04天 Java基础 第1章数组 1.1数组概念 软件的基本功能是处理数据,而在处理数...
    Java帮帮阅读 5,532评论 0 9
  • 数组的定义 数组是按序号排列的一组值,每个值的位置都有编号(从0开始)。数组本质上是一种特殊的对象。它的键名是按(...
    Allin_Lin阅读 3,728评论 0 0
  • 一、数组方法里push、pop、shift、unshift、join、split分别是什么作用。 (1).arr....
    饥人谷区子铭阅读 3,610评论 0 3
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,906评论 0 4

友情链接更多精彩内容