我的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"]
截图所示:
很显然,这不是我想要的结果,这样的话我要是进行遍历,肯定会报错的,于是度娘告诉我第二个方法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"]