[js] 使用delete删除数组,其长度会改变吗
使用delete删除数组元素,其长度会改变吗?
咱来写个案例🌰看看就知道了:
var arr = [1, 2, 3]
delete arr[1]
console.log(arr)
console.log(arr.length)
结果如下:
通过结果,我们可以得出结论:使用delete删除数组元素,其长度是不会改变的。
关于这一点,大家可以把数组理解为是一个特殊的对象,其中的每一项转换为对象的伪代码为:
key: value
// 对应:
0: 1
1: 2
2: 3
length: 3
所以我们使用delete操作符删除一个数组元素时,相当于移除了数组中的一个属性,被删除的元素已经不再属于该数组。但是这种改变并不会影响数组的length属性。
扩展:
如果你想让一个数组元素继续存在但是其值是 undefined,那么可以使用将 undefined 赋值给这个元素而不是使用 delete。例如:arr[1] = undefined
如果你想通过改变数组的内容来移除一个数组元素,请使用splice() 方法。例如:arr.splice(1, 1)
个人简介
我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。欢迎大家一起讨论
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通