js數組

js數組

變量用來存儲數據,一個變量只能存儲一個內容。如果你想存儲多個內容,那么就可以用數組解決,一個數組變量可以存放多個數據,好比一個團,團你有很多人。數組是一個值得集合,每個值都有一個索引號,從0開始,每個索引都有一個相應的值,根據需要添加更多數值。

數組的方法

即對一個或多個數組進行的一系列操作

  • 數組連接方法:concat()方法,用于連接兩個或多個數組,返回一個新數組,不改變原來的數組,僅僅返回被連接數組的一個副本。
    語法:arrayObject.concat(array1,array2,...,arrayN)
    用法如下:

      <script type="text/javascript">
        var mya = new Array(3);
        mya[0] = "1";
        mya[1] = "2";
        mya[2] = "3";
        document.write(mya.concat(4,5)+"<br>");
        document.write(mya); 
      </script>
    

返回結果:

    1,2,3,4,5
    1,2,3
  • 指定分隔符連接數組元素方法:join()方法,該方法用于把數組中的所有元素放入一個字符串,元素是通過指定的分隔符進行分隔。
    語法:arrayObject.join(分隔符(默認為逗號));
    用法:

      <script type="text/javascript">
        var myarr = new Array(3)
        myarr[0] = "I";
        myarr[1] = "love";
        myarr[2] = "JavaScript";
        document.write(myarr.join("."));
      </script>
    

運行結果:

    I.love.JavaScript
  • 顛倒數組元素順序:reverse()方法,用于顛倒數組中元素的順序。
    語法:arrayObject.reverse();
    用法如下:

      <script type="text/javascript">
        var myarr = new Array(3)
        myarr[0] = "1"
        myarr[1] = "2"
        myarr[2] = "3"
        document.write(myarr + "<br />")
        document.write(myarr.reverse())
      </script>
    

運行結果:

    1,2,3
    3,2,1
  • 選定元素:slice()方法,該方法可從已有的數組中返回選定的元素。
    語法:arrayObject.slice(start,end)

    • 參數說明:
      start,必需,規定從何處開始選取。如果為負數,那么它規定從數組尾部算起的位置,即:-1為最后一個元素,-2為倒數第二個元素,以此類推。end,可選,規定從何處結束選取。該參數是數組片段結束處的數組下標(不包含該下標所指元素)。如果沒有指定參數,那么切分的數組包含從start到數組結束的所有元素。如果為負數,那么它規定從數組尾部算起。該方法不會修改數組,而是返回一個子數組。
      注意:
      String.slice()與Array.slice()相似。
      用法如下:

        <script type="text/javascript">
          var myarr = new Array(1,2,3,4,5,6);
          document.write(myarr + "<br>");
          document.write(myarr.slice(2,4) + "<br>");
          document.write(myarr);
        </script>
      

運行結果:

        1,2,3,4,5,6
        3,4
        1,2,3,4,5,6
  • 數組排序:sort()方法,該方法用于使數組中的元素按照一定的順序排序。
    語法:arrayObject.sort(方法函數)

    • 參數說明:可選,規定排序順序,必須是函數。如果不指定<方法函數>,則按unicode碼順序排列:myArray.sort(sortMethod);。該函數要比較兩個值,然后返回一個用于說明這兩個值的相對順序的數字。比較函數應該具有兩個參數a和b,起返回值如下:
      若返回值 <= -1,則表示A在排序后的序列中出現在B之前。
      若返回值 > -1 && < 1,則表示A和B具有相同的排列順序。
      若返回值 >= -1,則表示A在排序后的序列中出現在B之后。
      例子:
          function sortNum(a,b) {
          return a - b;
         //升序,如降序,把“a - b”該成“b - a”
        }
         var myarr = new Array("80","16","50","6","100","1");
          document.write(myarr + "<br>");
          document.write(myarr.sort(sortNum));

運行結果:

80,16,50,6,100,1
1,6,16,50,80,100
  • 數組元素刪除(數組拼接):splice()方法,用于刪除數組中從特定位置開始的元素,返回刪除的值,會修改原數組。
    語法:arrayObject.splice(start,end,添加的項...)

    • 參數說明:start,必需,規定從何處開始刪除。數字為元素下標(刪除值包括該下標)。
      end,可選,表示刪除的數目。
      splice()方法還可以添加元素,因此稱為字符串拼接。

例子如下:

var arr=[1,2,3,4,5];
arr.splice(2);//returns [3,4,5]
arr;//[1,2]

var arr=[1,2,3,4,5];
arr.splice(2,2);//returns [3,4]
arr;//[1,2,5]

var arr=[1,2,3,4,5];
arr.splice(1,1,"a","b");//returns [2]
arr;//[1,"a","b",3,4,5]
  • 數組遍歷:forEach()方法,用于遍歷數組。不會修改原數組。
    語法:arrayObject.forEach(function(x,index,a(可選){})

    • 參數說明:x,表示數組任意的元素,index表示元素的索引值,a表示指向數組,返回值為布爾值。
      例子如下:

        var arr=[1,2,3,4,5];
        arr.forEach(function(x,index,a){
        console.log(x + "|" +index +"|" + (a===arr));//console.log打印數據,相當于C語言里的printf
        });
      

運行結果:

        1|0|true
        2|1|true

以此類推

  • 數組映射:map()方法,該方法用于對每一個數組元素進行操作,同樣不會修改原數組。
    語法:arrayObject.map(function(x){});
    例子:

      var arr=[1,2,3];
      arr.map(function(x){
      return x+10;
      });//return [11,12,13]
      arr;//[1,2,3]
    
  • 數組過濾:filter()方法,用于篩選一些我們需要的數組元素。不會修改原數組。
    語法:arrayObject.filter(function(x,index){})
    參數說明:x,表示數組任意的元素,index表示元素的索引值。
    例子:

      var arr=[1,2,3,4,5,6,7,8,9,10];
      arr.filter(function(x,index){
        return index%3===0||x>=8;
      });
    

運行結果:

    [1,4,7,8,9,10]
  • 數組判斷:every()和some()方法,用于判斷數組元素是否滿足條件,返回布爾值,與every()不同的是,some()表示只要有一個元素滿足條件就返回true。

  • reduce()和reduceRight()方法,用于數組元素之間的兩兩比較,最終得到一個值(把數組聚合成一個結果),如:找最大值,求和。而reduceRight()表示從右邊開始兩兩比較。

  • 數組檢索:indexOf()和lastIndexOf()方法,用于檢索每個元素在數組中的索引值。lastIndexOf()表示從后往前檢索。
    語法:arrayObject.indexOf(x,start),arrayObject.lastIndexOf(x,start)

    • 參數說明:x,表示需要檢索的元素,start表示從何處開始檢索(下標值),如果start為負數表示從倒數第幾個元素開始檢索。
  • 判斷某個值是否是數組:Array.isArray()

  • 轉換方法:toString()等。

  • 棧方法:push()和pop()

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 由于最近都在freecodecamp上刷代碼,運用了很多JavaScript數組的方法,因此做了一份關于JavaS...
    2bc5f46e925b閱讀 2,002評論 0 16
  • 一、數組方法匯總 shift:刪除原數組第一項,并返回刪除元素的值;如果數組為空則返回undefined var ...
    快抓住那個胖子閱讀 301評論 0 0
  • js中數組是比較常用的對象,同時js中的數組也十分的靈活。一. 創建數組的方式 字面量數組 var arr=[1,...
    饑人谷_廖珍閱讀 594評論 0 2
  • 創建數組 arr.length--- title: js正則表達式categories: javascriptda...
    angelwgh閱讀 1,404評論 0 2
  • 1.背景介紹 什么是棧內存和堆內存? JavaScript中的變量的存放有有原始值與引用值之分,原始值代表了原始的...
    lx2487閱讀 3,363評論 0 2