当前位置: 移动技术网 > IT编程>开发语言>JavaScript > JS删除数组元素

JS删除数组元素

2019年10月17日  | 移动技术网IT编程  | 我要评论

删除数组中连续的元素时,可以使用slice或者splice方法,splice时需要注意会修改原数组。

1.slice(start,end):方法可从已有数组中返回选定的元素,返回一个新数组,包含从start到end(不包含该元素)的数组元素。(不改变原数组)

  • start参数:如果不指定,那么从0开始。如果为负数,规定从数组尾部算起的位置,-1是指最后一个元素。
  • end参数:如果不指定,那么切分的数组包含从start到数组结束的所有元素。如果为负数,规定从数组尾部算起的位置,-1是指最后一个元素。
var arr = [1,2,3,4,5];
console.log(arr.slice(1,-1));//[2,3,4]
console.log(arr);//[1,2,3,4,5]

 

2.splice(index,howmany,item1,...itemx):该方法向或者从数组中添加或者删除项目,返回被删除的元素。(会改变原数组)

  • index参数:规定添加或者删除的位置。如果不指定,那么从0开始。如果为负数,规定从数组尾部算起的位置,-1是指最后一个元素。
  • howmany参数:要删除的数量,不指定时,删除index后的所有元素。如果为0,则不删除项目。
  • tem1,...itemx参数:可选,向数组添加的新元素。
var arr = [1,2,3,4,5];
console.log(arr.splice(2,2,"hello"));//[3,4]
console.log(arr);//[1, 2, "hello", 5]  改变了原数组

 

删除数组中不连续的元素时,可以自己写函数实现:

1:filter

function remove(arr, item) {
   return arr.filter(function(cur,index,src){
        if($.isarray(item)){
            if($.inarray(cur, item) != -1){
                return false
            }
        }else{
            if(cur === item){
                return false
            }
        }            
        return true
    })
}
var arr = [1,2,3,4,5];
console.log(remove(arr,[1,2]));//[3,4,5]
console.log(arr);//[1,2,3,4,5]

2:push

function remove(arr, item) {
    var temparr = []; 
    $.each(arr, function(i,cur){ 
        if($.isarray(item)){
            if($.inarray(cur, item) == -1){
                temparr.push(cur)
            }
        }else{
            if(cur != item){
                temparr.push(cur)
            }
        }
    })
    return temparr
}
var arr = [1,2,3,4,5];
console.log(remove(arr,[1,2]));//[3,4,5]
console.log(arr);//[1,2,3,4,5]

3:splice

function remove(arr, item) {
    var newarr = arr.slice(0);
    for(var i=0;i<newarr.length;i++){
        if($.isarray(item)){
            if($.inarray(newarr[i], item) != -1){
                newarr.splice(i,1);
                i--;
            }
        }else{
            if(newarr[i] == item){
                newarr.splice(i,1);
                i--;
            }
        }
    }
    return newarr;        
}
var arr = [1,2,3,4,5];
console.log(remove(arr,[1,2]));//[3,4,5]
console.log(arr);//[1,2,3,4,5]

 

参考文献:


 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网