js-数组坍塌

2023-11-08

什么是数组坍塌?

当数组执行删除单元格操作时,被删除单元,之后的单元,会前移,进而顶替被删除单元,出现在被删除单元的位置上,造成数组长度减少情况,这样的现象称为数组坍塌。
在这里插入图片描述

var arr = ['a', 'b', 'c', 'd', 'e'];
for(var i = 0 ; i < arr.length - 1 ; i++){
	if(i == 2){
		arr.splice(i,1); // 当索引为2时,执行删除数组单元操作 
	}
}

所以当执行删除操作时,原始索引为{2 == c}数组变成了{2 == b}被 b 顶替上了, 数组长度变成了 3,
当后续再要执行数组删除时,索引为2的,也就是现在{2 == b}的索引永远也不会执行操作,因为之前已经删除过一次,

在这里插入图片描述

如何解决数组坍塌????

在执行操作后 + i-- , 也就是让他更新后的数组回到现在索引的位置,防止数组坍塌,造成有单元没有执行操作

var arr = ['a', 'b', 'c', 'd', 'e'];
for(var i = 0 ; i < arr.length - 1 ; i++){
	if(i == 2){
		arr.splice(i,1); // 当索引为2时,执行删除数组单元操作
		i--; 
	}
}

当 i 进行了 减减之后,又回到了上一次位置,此时程序已经执行完了,就不会造成数组坍塌了,
逆战班学习的周总结。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js-数组坍塌 的相关文章

随机推荐

  • 微电网日前优化调度 。算例有代码(1)

    个人电气博文传送门 学好电气全靠它 个人电气博文目录 持续更新中 符号说明 问题1 求解 经济性评估方案 若微网中蓄电池不作用 且微网与电网交换功率无约束 在无可再生能源和 可再生能源全额利用两种情况下 分别计算各时段负荷的供电构成 kW
  • 跑马灯-------寄存器版本

    拿到一个工程模板 首先要编译 编译成功之后再删除main 内容 这样编译不会出错 程序步骤 配置时钟使能寄存器 RCC AHB1ENR寄存器 用来时钟使能 然后 跑马灯IO口是PF9 PF10 GPIOF在RCC AHB1ENR 中是第五位
  • Eclipse 插件开发中使用Target Platform

    使用Eclipse IDE做插件 Plugin 开发的时候 有时会遇到开发的平台跟当前Eclipse版本不一致的问题 解决办法之一就是在当前项目中定义自己的target platform 文件 创建Target Platform文件 1 创
  • 服务降级、熔断、限流

    目录 目录 1 概念 1 1 降级 1 1 1 常见降级 1 1 2 示例 1 2 熔断 1 2 1 熔断设计 1 2 2 示例 1 3 限流 1 3 1 算法 1 3 2 示例 2 区别 3 案例 1 概念 1 1 降级 服务降级处理是在
  • java 判断两个字符串的字符集是否相同

    问题描述 给定两个字符串判断它们的字符集是否相同 例如 aaabbcc 和 abc 的字符集是相同的 字符集都是 a b c 解题方法 这题与变形词不同在于仅仅要求字符集相同 对数量和长度没有要求 而变形词是要求重复出现的次数也要相同 可以
  • 基于selenium的twitter博文评论爬虫

    技术合作联系 13958075150 1 首次登录获取cookies并存为文件 from selenium import webdriver import time import json br webdriver Chrome br ge
  • 【nacos】5.2 @RefreshScope + @Value 注解 自动刷新配置

    返回首页 gt 笔记 Spring Cloud Alibaba Nacos 接上节 spring cloud Nacos 实现统一配置管理 1 问题 如何不启动spring boot项目自动更新 Value 注解的值 2 方案 类 方法 属
  • 螺旋矩阵的python实现

    问题描述 对于一个 n 行 m 列的表格 我们可以使用螺旋的方式给表格依次填上正整数 我们称填好的表格为一个螺旋矩阵 例如 一个 4 行 5 列的螺旋矩阵如下 1 2 3 4 5 14 15 16 17 6 13 20 19 18 7 12
  • eclipse indigo版本连接oracle XE(图解)

    讲在题前 oracle 的各个版本对应的驱动名称 oracle 不同版本的驱动 是对应不对的JDK版本的 例如JDK是1 4的话 你需要的oracle的JDBC的驱动包名称为 ojdbc14 jar 例如JDK是1 4的话 你需要的orac
  • C语言——字符串翻转

    C语言系列文章 C语言 判断回文数 对称数 字符串翻转 C语言系列文章 前言 字符串翻转 复习时间 C语言代码 总结 前言 哈喽 小伙伴们 最近在复习C语言的基础语法 从0开始 所以今天的题目比较简单 也就是我们最常见的字符串翻转问题 这道
  • go语言详解-----包(package)引入

    一 go语言基础 1 每一个可运行的go程序必须要有一个main 包 package 即package main 并且该main包中必须要有一个main函数 这是一个入口函数 2 一个包中的描述符要能够被其他的包引用 那么该包中的相关描述符
  • Matlab 散点图(Scatter)和颜色图(Colormap)

    目录 一 什么是散点图 二 什么数据需要用散点图来呈现 三 matlab 中的颜色如何表示和调用 ColorOrder LineStyleOrder 应用实例 四 颜色和透明度在散点图中的灵活应用 二维散点图 三维散点图 数据分组 五 Sc
  • Android O(8.0)以上系统使用通知

    前言 根据 第一行代码 第二版 第八章中通知的写法 在我自己手机上调试的时候没有任何反应 查阅资料后发现 因为我的手机系统是MIUI10 3版本 为Android 9系统 而在Android 8系统上对通知进行了修改 引入了消息通道 Not
  • Dynamic CRM9.0 环境安装部署手册步骤和遇到的一些问题解决方案(包含ADFS部署)

    Dynamic CRM9 0 环境安装部署手册 Dynamic 365和ADFS配置安装过程踩了一些坑 拿出来和大家记录分享一下 目录 Dynamic CRM9 0 环境安装部署手册 一 Active Directory 和 IIS 的安装
  • pgsql:跨库访问其他数据库

    在mssql或mysql中 跨库访问其他数据库是很简单的 用 数据库名 表名 即可访问 但在pgsql中跨库访问就稍微麻烦一些 需要做一些前期准备 以下使用了自带的扩展插件postgres fdw来创建跨库链接 开启扩展插件 CREATE
  • element-ui+vue使用时遇到的坑

    从事前端工作也有几年了 大大小小的项目也做了不少 遇到过许多的坑 有时候项目太忙 没有那么多的时间来整理一些知识点 挺吃亏的 因为我始终相信不总结就相当于没学到东西 所以最近开始写起了博客 我深知前端大佬比比皆是 但这也仅仅是我想要对自己负
  • 二叉树基本代码实现

    目录 1 二叉树的链式结构 2 二叉树的遍历 2 1先序遍历 2 2中序遍历 2 3后序遍历 3 二叉树的基本操作 3 1求二叉树结点个数 3 1 1全局遍历 3 1 2递归的思想分治 3 1 3局部变量 3 2求二叉树叶子结点个数 3 3
  • 编译Linux报错/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o: in function `_start‘:

    报错信息 解决方法 改成编译动态库
  • 构造方法的访问级别之private

    构造方法的访问级别 public protected private 默认访问级别都可以 在此重点记录由private修饰的构造方法 private修饰的构造方法的访问级别 当构造方法别声明为private时 就意味着只有当前类的方法可以调
  • js-数组坍塌

    什么是数组坍塌 当数组执行删除单元格操作时 被删除单元 之后的单元 会前移 进而顶替被删除单元 出现在被删除单元的位置上 造成数组长度减少情况 这样的现象称为数组坍塌 var arr a b c d e for var i 0 i lt a