本文介绍JavaScript中删除数组元素的两种常用方法:splice和delete。splice会改变原数组长度并修改索引,适用于需要紧凑数组的场景;delete仅将指定元素置为undefined,保持数组长度不变,遍历时可跳过空位。通过代码示例对比两者在长度变化和索引保留上的差异,帮助开发者根据实际需求选择合适方案。
JavaScript数组删除问题
在实际开发中,我们经常需要操作数组的删除功能。这里分别记录splice和delete两种方法的使用情况,以便日后查阅参考。
假设原数组是一个关联数组,例如:
var test=[];
test[1]={name:'1',age:1};
test[2]={name:'2',age:2};
test[4]={name:'3',age:3};
console.log(test)
这是一个长度为5的关联数组,接下来演示如何对其进行删除操作。
1. splice方法
test.splice(2,1);
console.log(test)// 打印结果如下
注意:使用splice后,数组长度会相应改变,且原有元素的索引也会随之调整。splice方法的第一个参数表示删除的起始索引(从0开始计数),例如这里的2代表数组的第三个元素。第二个参数表示要删除的元素个数,此处仅删除一个元素,即test[2]。
删除操作完成后,可以使用普通的数组遍历方式(如for循环)来遍历数组,因为splice删除的元素在数组中不再保留,索引是连续的。
2. delete方法
delete test[2];
console.log(test);// 打印结果如下
ps:这种方式数组长度不变,此时test[2]变为undefined了,好处是原来数组的索引也保持不变,此时要遍历数组元素可以才用。这种遍历方式跳过其中undefined的元素,所以非常实用。
for(i in test)
{
console.log(test[i])
}
//打印结果如下:
JavaScript数组删除方式:delete与splice的区别
JavaScript中删除数组元素主要有两种方式:

1. delete操作(删除后数组长度不发生变化。如图所示:删除一条数据后长度仍为2)
var array = ["/profile/upload/2022/07/25/OIP-C_20220725151518A011.jpg" , "/profile/upload/2022/07/25/OIP-C_20220725151518A003.jpg"]
delete array[0]
2. splice方法(删除后数组长度发生变化。如图所示:删除一条数据后长度变为1)
var array = ["/profile/upload/2022/07/25/OIP-C_20220725151518A011.jpg" , "/profile/upload/2022/07/25/OIP-C_20220725151518A003.jpg"]splice(0,1);括号中的第一个数字'0'表示起始位置,第二个数字'1'表示需要删除的长度。

总结
以上为个人经验总结,希望能给大家提供一个参考,也希望大家多多支持本站。