3 移除数组arr中所有与item相等的元素,不更改原数组。

Posted YoungLight

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3 移除数组arr中所有与item相等的元素,不更改原数组。相关的知识,希望对你有一定的参考价值。

 

方法一:filter ES5方法

var a=[1,5,‘ff‘,‘g‘,‘h‘,‘sd‘];
alert(remove(a,‘g‘));         

function  remove(arr,item){
    return   arr.filter(function(ele){return ele !=item})
}

 

方法二:push方法

function  remove(arr,item){
    var arr2=[];
    for (var i=0;i<arr.length ;i++)
    {
        if (arr[i] !=item)
            {
            arr2.push(arr[i]);
           }
    }
    return arr2;
}

 

方法三:splice方法

//此方法的牛逼之处在于倒着删除相等的元素item,避免了正着删除时后面元素前移的问题;
function  remove(arr,item){
  var newarr=arr.slice(0);
  for (var i=newarr.length;i>=0 ;i-- )
  {
      
      if (newarr[i]==item)
      {
        
          newarr.splice(i,1);                   
      }
  }
  return  newarr;
}

 

方法四:利用数组本身的特性,将数组看作队列,使用push和shift方法来操作;

function remove(arr,item){
  var newarr=arr.slice(0);
  for (var i=0;i<newarr.length+1;i++) //注意此处的i<newarr.length+1;
    {

    if (newarr[0]!==item)
      {
        newarr.push(newarr[0]);
        newarr.shift();
      }
    else{
        newarr.shift();
       }
    }
  return newarr;
}

 

以上是关于3 移除数组arr中所有与item相等的元素,不更改原数组。的主要内容,如果未能解决你的问题,请参考以下文章

.封装函数, 在数组 arr 中,查找值与 item 相等的元素出现的所有位置.

简单整理常见对数组字符串操作的封装

#yyds干货盘点# 前端歌谣的刷题之路-第五十五题-移除数组中的元素

#yyds干货盘点# 前端歌谣的刷题之路-第五十六题-移除数组中的元素

LeetCode题解:移除元素

LeetCode 1551. 使数组中所有元素相等的最小操作数