js參考型別基礎——數組

來源:互聯網
上載者:User

標籤:不同   div   工作   分享   ble   let   構造   元素   false   

數組,顧名思義就是將一組數組合在一起,即數組是資料的有序集合。
js數組是無類型的,數組元素可以是任意類型資料,
js數組是動態,根據需要它們會增長或縮減。
我們知道數組是對象,數組的索引其實相當於對象的屬性名稱,只不過這裡只能用方括弧來訪問。

 

  1. 建立數組
    (1)建構函式法
    使用Array()建構函式可以建立一個數組。
    var a = new Array();          //建立一個新數組var b = new Array(10);        //建立長度為10的空數組,10並非是數組元素個數的上限

    (2)字面量標記法
    使用方括弧建立數組,數組元素用逗號隔開。

    var color = ["blue","red","yellow"];var count = [1,,3];                        //數組有3個元素,中間的元素為undefinedvar undefs = [,,,];                        //不要這樣寫,會被當做3或者4個元素,視瀏覽器而定

    上述數組count中間的元素若顯式的定義為undefined,情況略有不同

    雖然二者的數組長度都是3,但是前者是個稀疏數組,元素個數只有2,後者是稠密數組,元素個數為3。

  2. 數組長度
    數組有一個length屬性,一般情況下,length屬性值等於數組元素的個數。當數組是稀疏數組時length值大於數組元素個數
    數組長度是動態,因此可以通過改變length屬性值來增刪數組元素

    當然數組既然是對象,也就繼承了對象的方法,我們可以通過Object.defineProperty()讓數組的length屬性變成唯讀
    var a = [1,2,3];Object.defineProperty(a, "length", {writable:false});a.length = 0;    //該操作無效
  3. 數組元素的添加和刪除
    添加數組元素最簡單的方法是為新索引賦值
    var a = [];         //開始是一個空數組a[0] = "zero";      //向其中添加元素a[1] = "one";

    也可以使用push()方法在數組末尾添加一個或者多個元素

    var a = [];             //開始建立一個空數組a.push("zero");         //在末尾添加一個元素,a=["zero"],方法返回1a.push("one","two");    //再添加兩個元素,a = ["zero","one","two"],方法返回3

    該方法返回的新數組的長度。
    要想在數組首部插入一個元素可以使用unshift()方法,同樣也是返回新數組的長度
    刪除數組元素可以用以上的length屬性,也可以像刪除對象屬性一樣使用delete運算子來刪除數組元素

    var a = [1,2,3];delete a[1];        //a在索引1的位置不再有元素1 in a              //falsea.length            //3

    可以看出,delete不會修改數組的length屬性
    刪除數組元素還可以使用數組的pop()方法和shift()方法。pop()方法一次刪除數組末尾的最後一個元素,方法返回被刪除的元素;shift()方法則是在數組首部刪除元素,同樣方法本身返回被刪除的元素。與delete不同是,delete其他元素的索引位置不變,即形成稀疏數組,而pop()和shift()方法數組的相應元素索引自動減1.,即恢複稠密數組。
    最後,splice()是一個通用的方法來插入,刪除和替換數組元素,該方法改變原數組,返回的是移除的元素。新數組仍然是稠密數組

  4. ES3數組方法
    4.1 join()
    將數組中所有元素都轉換為字串串連在一起,可以傳入一個參數作為分隔字元,如果沒有參數則預設以逗號分隔。該方法並不改變原數組
    Array.join()方法是String.split()方法的逆向操作
    4.2 reverse()
    將數組中的元素顛倒順序,改變原數組,方法返回新數組。
    4.3 sort()
    將數組中的元素排序。改變原數組,並返回新數組。若數組包含undefined元素,它們會排在數組尾部
    sort()排序方式是按字母表順序排序的,若想按數值大小排序,可以傳入一個比較函數
    4.4 concat()
    建立並返回一個新數組,不會改變原來的數組。
    var a = [1,2,3];a.concat(4,5);              //返回[1,2,3,4,5]a.concat([4,5]);            //返回[1,2,3,4,5]a.concat([4,5],[6,7]);      //返回[1,2,3,4,5,6,7]a.concat(4,[5.[6,7]]);      //返回[1,2,3,4,5,[6,7]]

    4.5 slice()
    返回指定數組的一個片段或子數組,兩個參數分別為開始和結束位置,但不包含結束位置。不會改變原數組
    4.6 splice()
    該方法第一個參數指定起始位置,第二個參數為從數組中刪除的個數,若省略則從起始一直刪除到末尾,後面的其他參數是要插入的元素。改變原數組,返回被刪除的元素組成的數組,若沒有刪除元素,則返回空數組。
    4.7 push()和pop()
    4.8 unshift()和shift()
    4.9 toString()和toLocaleString()

  5. ES5數組方法
    5.1 forEach()
    遍曆數組,為每個數組調用指定的函數,傳遞的函數作為第一個參數,然後forEach()使用3個參數調用該函數:數組元素,元素的索引和數組本身
    5.2 map()
    將調用的數組的每個元素傳遞給指定的函數,並返回一個數組,它包含該數組的傳回值。
    5.3 filter()
    返回的數組元素師調用數組的一個子集。傳遞的函數是用來判定的,該函數返回true或false。
    5.4 every()和some()
    every()和some()方法是數組的·邏輯判定,它們對數組元素應用指定的函數進行判定,返回true或false
    5.5 reduce()和reduceRight()
    5.6 indexOf()和lastIndexOf()
    搜素整個數組中具有給定值的元素,返回找到的第一個元素的索引,若沒有該元素返回-1。
  6. 數群組類型
    我們可以使用typeof操作符來方便的識別基本類型資料,但卻不能用來區分數組和非數組對象,因為他們都會返回“對象”,在ES5中,我們可以使用Array.instanceof操作符來完成這個工作,


2017-10-09
19:21:23

js參考型別基礎——數組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.