JavaScript數組

Array 對象用於在單個的變量中存儲多個值. 創建數組的方法如下:

let arr = new Array();
let arr = new Array(size);
let arr = new Array(element0, element1, ..., elementn);
let arr = [];
let arr = ['apple','banana']

通過索引訪問數組元素:

let item = arr[item]

遍歷一個數組:

arrName.forEach(function (item, index, array) {
    console.log(item, index);
});

Array常用對象方法:

  • concat() : 連接兩個或更多的數組,並返回結果。這個方法會先創建當前數組一個副本,然後將接收到的參數添加到這個副本的末尾,最後返回新構建的數組
    var arr = [1,3,5];
    var arr2 = arr.concat[2,[4,6]];
    console.log(arr2);       // 1,3,5,2,4,6
    console.log(arr);        // 1,3,5   原數組不變
    
  • join() : 把數組的所有元素放入一個字符串,元素通過指定的分隔符進行分隔。
    let arr = ['Wind', 'Rain', 'Fire'];
    arr.join();         // 默認爲 ","     'Wind,Rain,Fire'
    
    arr.join("");       // 分隔符爲空字符串 " "      "WindRainFire"
    
    arr.join("-");      // 分隔符 "-"     'Wind-Rain-Fire'
    
  • pop() : 刪除並返回數組的最後一個元素。pop() 方法將刪除 arrayObject 的最後一個元素,把數組長度減 1,並且返回它刪除的元素的值。如果數組已經爲空,則 pop() 不改變數組,並返回 undefined 值。
    let a = [1,3,5];
    a.pop();       // 5
    
  • push() : 向數組的末尾添加一個或多個元素,並返回新的長度。
    let arr = new Array("George","John","Thomas");
    
    document.write(arr + "
    "); // George,John,Thomas document.write(arr.push("James") + "
    "); //4 document.write(arr); // George,John,Thomas,James
  • shift() : 刪除並返回數組的第一個元素
    let arr = new Array("George","John","Thomas");
    document.write(arr.shift() );    // George
    
  • unshift() : 向數組的開頭添加一個或更多元素,並返回新的長度。
    let arr = new Array("George","John","Thomas");
    
    document.write(arr + "
    "); // George,John,Thomas document.write(arr.unshift("William") + "
    "); // 4 document.write(arr); // William,George,John,Thomas
  • reverse() : 顛倒數組中元素的順序。
    let arr = ['one', 'two', 'three'];
    arr.reverse(); 
    
    console.log(arr);    // ['three', 'two', 'one']
    
  • slice() : 抽取當前數組中的一段元素組合成一個新數組,該方法不會修改數組,只會返回一個子數組。語法如下:
    arrayObject.slice(start,end)
    
  • splice(): 在任意的位置給數組添加或刪除任意個元素,該方法會改變原數組。語法如下:
    arrayObject.splice(index,howmany,item1,.....,itemX)
    
    其中:index是必須參數,規定添加/刪除項目位置;howmany也是必須參數,爲刪除的數目量;item…爲可選參數,是向數組添加的新項目。
  • sort(): 對數組的元素進行排序。語法爲:
    arrayObject.sort(sortby)
    
    其中sortby爲一個可選的排序函數。、
    function sortNumber(a,b)
    {
    return a - b
    }
    let arr = [1,5,8,2,6,4];
    arr.sort(sortNumber);      // 1,2,4,5,6,8
    
  • indexOf() : 返回在數組中可以找到一個給定元素的第一個索引,如果不存在,則返回-1
    let arr = [1,3,6,8,9];
    arr.indexOf(2);     // -1
    arr.indexOf(6);     // 2
    
  • lastIndexOf() : 返回指定元素在數組中的最後一個的索引,如果不存在則返回 -1
    let arr = [1,3,6,8,9];
    arr.lastIndexOf(2);     // -1
    arr.lastIndexOf(6);     // 2
    
  • map() : 創建一個新數組,其結果是該數組中的每個元素都調用一個提供的函數後返回的結果。map 不修改調用它的原數組本身
    let arr = [1,4,9];
    
        let num1 = arr.map(x => x*2);
        let num2 = arr.map(function(x){
            return Math.sqrt(x);
        });
        let num3 = arr.map(Math.sqrt);
    
        console.log(num1);     // [2,8,18]
        console.log(num2);     // [1,2,3]
        console.log(num3);     // [1,2,3]
    
  • reduce() : 對累加器和數組中的每個元素 (從左到右)應用一個函數,將其減少爲單個值
    let sum = [0, 1, 2, 3].reduce(function(acc, val) {
      return acc + val;
    }, 0);
    
    console.log(sum);     // 6
    
    對應的還有 reduceRight() 方法
  • filter() : “過濾”功能,數組中的每一項運行給定函數,返回滿足過濾條件組成的數組。
    function isBigEnough(value) {
      return value >= 10;
    }
    
    var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);     //  [12, 130, 44]
    
  • every() : 如果數組中的每個元素都滿足測試函數,則返回 true,否則返回 false
    function isBigEnough(element, index, array) {
      return (element >= 10);
    }
    var passed = [12, 5, 8, 130, 44].every(isBigEnough);    // false
    
  • some() : 如果數組中至少有一個元素滿足測試函數,則返回 true,否則返回 false。
    function isBigEnough(element, index, array) {
      return (element >= 10);
    }
    var passed = [12, 5, 8, 1, 4].some(isBigEnough);       // true
    

在這裏對數組的常用方法做個總結,方便以後查看。

發佈了59 篇原創文章 · 獲贊 29 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章