注意一下,JS数组中的delete和splice方法

我的JS是自学的,感觉自己看完了教程就差不多了,由于是写java的,所以用JS的概率也不大,目前还是处于勉强读懂JS状态。

今天有个需求,要删除JS数组中的元素,当然需求肯定没有这么简单,我只是用到了这个东东,按照java那种思想,我试了remove,delete都不行。只好上百度,结果发现,delete的用法在JS中居然是这个亚子滴。

var array=["aa","dd","cc","dd"];
delete array[1];

然后测试了一下,发现这个删除,好像并不会更新数组,只是将该位置的元素置空了。

var array=["aa","dd","cc","dd"];
console.log(array);
delete array[1];
console.log(array);

输出:
 ["aa", "dd", "cc", "dd"]
 ["aa", empty, "cc", "dd"]

截图所示:
注意一下,JS数组中的delete和splice方法_第1张图片
很显然,这不是我想要的结果,这样的话我要是进行遍历,肯定会报错的,于是度娘告诉我第二个方法splice

splice() 方法,支持插入、删除、替换

有三个参数:
array.splice(index,howmany,item1,.....,itemX)
第一个:必填,要删除的下标
第二个:必填,删除的数量
第三个:选填,要添加数组的新元素

删除案例:

var array=["aa","dd","cc","dd"];
console.log(array);
array.splice(1,2);
console.log(array);

输出:
 ["aa", "dd", "cc", "dd"]
 ["aa", "dd"]

插入案例:

var array=["aa","dd","cc","dd"];
console.log(array);
array.splice(1,2,'45');
console.log(array);

输出:
["aa", "dd", "cc", "dd"]
["aa", "45", "dd"]

替换案例:

var array=["aa","dd","cc","dd"];
console.log(array);
array.splice(1,1,'45');
console.log(array);

输出:
["aa", "dd", "cc", "dd"]
["aa", "45", "cc","dd"]

你可能感兴趣的:(javascript)