zoukankan      html  css  js  c++  java
  • 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;
    }

  • 相关阅读:
    MVC框架简介
    模型-视图-控制器模式
    高德地图基本开发
    质量属性的六个常见属性场景分析
    架构漫谈读后感
    第十周
    第九周总结
    第八周总结
    springboot基于mybatis的pegehelper分页插件
    webmagic之爬取数据存储为TXT
  • 原文地址:https://www.cnblogs.com/younylight/p/7818550.html
Copyright © 2011-2022 走看看