js數組的幾個練習題


  第一次在博客園寫文章,之前一直自己做記錄。現在前端工作兩年了,對前端整體技術有較清晰的了解。項目用了vue,react之類的寫,如今打算從基礎開始,慢慢深入了解原生的JS.這幾天清明節,玩的嗨皮,最后一次開始趕作業(我規定自己每天至少一個Js題,在網上隨機找的。*~*)

  今天主要是重寫了數組的remove(),concat()方法以及查找數組中對應元素。下面做一個簡單分享:

  1.重寫remove()方法,返回新數組

      

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

  2.移除數組 arr 中的所有值與 item 相等的元素,直接在給定的 arr 數組上進行操作,並將結果返回    

      function removeWithoutCopy(arr, item) {
        for(var i=0;i<arr.length;i++){
          if(arr[i]==item){
            arr.splice(i,1);
            i--;
            arr.length--;
          }

        }
        return arr
      }

  注:這里要i--;arr.length--;是因為在給定的數組中操作的。splice每次移除都會改變arr的長度。

  3.在數組 arr 末尾添加元素 item。不要直接修改數組 arr,結果返回新的數組  

    function append(arr, item) {
      Array.prototype.clone=function(){
        return this.slice(0)
      }
      var arry=arr.clone();
      arry.push(item);
      return arry
    }

  注:這里我特意給數組的原型加了一個克隆方法是方法初學者理解。因為直接給數組賦值如:var arry=arr;是賦值引用,

  當我改變arry時,arr源會跟着改變,所以我選擇克隆一個新數組。

  4.數組的合並,不能在原有數組上修改。 

    function concat(arr1,arr2) {
      var arry=arr1.slice(0);
      for(var i=0;i<arr2.length;i++){
        arry.push(arr2[i]);
      }
      return arry;
    }

  注:這里我也用到了第3題的克隆(截取)方式

下面我再用一組圖簡單介紹一下操作數組用爛了的幾個函數:push(),pop(),unshift(),shift()

  

  好啦,今天就寫到這,歡迎多多指教!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM