JS删除数组元素_白江_前端开发者

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

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

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

    var];
    console.log(arr.slice(
    //[2,3,4]//[1,2,3,4,5]

     

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

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

    var];
    console.log(arr.splice(
    //[3,4]//[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]
    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]

    function remove(arr, item) {
    returnfunction(cur,index,src){
    if($.isArray(item)){
    if){
    returnfalse
    }
    }
    else{
    if item){
    returnfalse
    }
    }
    returntrue
    })
    }
    var];
    console.log(remove(arr,[
    //[3,4,5]//[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]
    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]

    function remove(arr, item) {
    var [];
    $.each(arr,
    function(i,cur){
    if($.isArray(item)){
    if){
    tempArr.push(cur)
    }
    }
    else{
    if item){
    tempArr.push(cur)
    }
    }
    })
    return tempArr
    }
    var];
    console.log(remove(arr,[
    //[3,4,5]//[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]
    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]

    function remove(arr, item) {
    var);
    forvar){
    if($.isArray(item)){
    if){
    newarr.splice(i,
    );
    i
    ;
    }
    }
    else{
    if item){
    newarr.splice(i,
    );
    i
    ;
    }
    }
    }
    return newarr;
    }
    var];
    console.log(remove(arr,[
    //[3,4,5]//[1,2,3,4,5]

     

    参考文献:

    https://blog.csdn.net/xiaoqingpang/article/details/79108005
    https://blog.csdn.net/qq_31325079/article/details/85758276

    https://blog.csdn.net/xiaoqingpang/article/details/79108005
    https://blog.csdn.net/qq_31325079/article/details/85758276

     

    » 本文来自:前端开发者 » 《JS删除数组元素_白江_前端开发者》
    » 本文链接地址:https://www.rokub.com/73706.html
    » 您也可以订阅本站:https://www.rokub.com
    赞(0)
    64K

    评论 抢沙发

    评论前必须登录!