js数组操作(添加、删除、替换元素)

JavaScript09

js数组操作(添加、删除、替换元素),第1张

1、添加元素

函数:push(para),参数说明para要添加的元素

示例:

var lang = ["php","java","javascript"]

lang.push('.net')

结果:lang = ["php","java","javascript",".net"]

2、删除和替换元素

函数:splice(para1,para2,para3),参数说明para1其实位置(从0开始),para2要删除的元素个数,para3(可选)要替换的元素

示例:

a、删除

var lang = ["php","java","javascript"]

lang.splice(0,1)

结果:lang = ["java","javascript",".net"]

b、替换

var lang = ["php","java","javascript"]

lang.splice(0,1,'.net')

结果:lang = [".net","javascript",".net"]

var a = new Array("a","b","cc","d3")//

删除a数组的cc元素

//jQuery.inArray()函数用于在数组中搜索指定的值,并返回其索引值。如果数组中不存在该值,则返回 -1。该函数属于全局jQuery对象。

jquery 1.2中添加的该静态方法var index = $.inArray("cc",a)

if(index>=0){//arrayObject.splice(index,howmany,item1,.....,itemX)

//参数描述//index  必需。

整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置,//howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。

//item1, ..., itemX 可选。向数组添加的新项目。

 a.splice(index,1)

 alert(a.totring())

}else{

 alert("error") return false

}

参考

js在循环遍历数组中删除指定元素踩坑( foreach.. for.. for..in.. )

JS-数组遍历中删除元素的方法优化

第一次forEach循环,arr是[1, 1, 2],index是0,item是1,if条件成立, 使用splice删除了item1,arr变成[1, 2]

第二次forEach循环,arr是[1, 2],index是1,item是2,if条件不成立,使用splice无法删除了第二个重复的1

出现问题的原因就是splice删除当前数据时,导致后面的数据前移,最直接的解决办法就是i也跟着前移即可。

注意,此时使用For in遍历是不行的

原因是迭代器的i,每次都重新取值了,i--失效。

测试结果说明可以安全删除