JavaScript——數組

數組是JavaScript中的經常使用類型,本文詳述了數組的基本知識以及一些經常使用的數組方法,並對每種方法進行了詳細解釋數組

數組定義

  1. 用字面量直接定義函數

    1
    var arr=[0,0,0]; //注意,是方括號
  2. 經過new Array();spa

  • 參數爲一個時,表示數組的長度
  • 參數爲多個時,則表示數組元素

數組增刪

  • arr(arr.length)=0; //在數組最後面添加元素
  • push()/pop(); //在數組最後面增刪元素
  • unshift()/shift(); //在數組最前面增刪元素

數組迭代

for…in,eg:for(i in arr){}prototype

  • 遍歷數組
  • 會把數組原型鏈上的元素一同遍歷出來
  • 是無序遍歷

二維數組

定義:
var arr=[[0,1],[0,1]]code

稀疏數組

並不含有從0開始的連續索引,通常數組的length會比實際元素個數大。不連續的索引返回undefined,可利用此判讀。對象

數組方法

數組原型鏈上提供了大量方法blog

Array.prototype.join()

  • 將數組轉爲字符串,同時將傳入字符串插入每一個元素中間,可經過此方法將字符串重複
1
2
3
4
5
function reapeatString(str,n)
{
return new Array(n+1).join(str);
}
reapeatString(hi,3); //hihihi

Array.prototype.reverse()

  • 將數組逆序,直接修改數組

Array.prototype.sort()

  • 將數組排序,默認按字母升序排列,直接修改數組
  • 可按自定義規則排序,傳入比較函數
1
2
3
arr.sort(function(a,b){
return a-b;
})

按正常數值相減的正負返回,是升序排列;按正常數值相減的正負符合取反,是降序排列.
傳入的a,b能夠是對象或數組(但都是某個數組的元素),相減時再具體到數組的第幾個數值或對象的哪一個屬性,最後會按結果對包含數組排序排序

Array.prototype.concat()

  • 合併數組,不直接修改原數組,需經過返回值才能拿到結果
    • 若傳入參數是一維數組,會被拉平
    • 若傳入參數是二維數組,,會拉平最外第一維,元素數組格式不變
1 function reapeatString(str,n)
2 {
3     return new Array(n+1).join(str);
4 }
5 reapeatString(hi,3);  //hihihi

 


獲取部分數組,arr[n]到arr[m-1],即左閉右開
Array.prototype.slice(n,m)

  • Array.prototype.slice(n),從arr[n]到最後,包含最後的全部元素
  • 若參數爲負值,則表示由後往前的索引值,最後一個元素爲-1

Array.prototype.splice()

  • 刪除和添加部分數組,對原數組直接修改
  • 傳入參數:
    • 第一個:索引
    • 第二個:刪除個數 (可無)
    • 後面:將添加的數組,在索引處添加 (可無)

Array.prototype.forEach(function(x,index,a){})

  • 遍歷數組,對每一個元素調用回調函數
  • 回調函數可傳入三個參數:元素的值,元素的索引,數組自己

E5S的新方法,IE9及以上支持,接下來都是索引

Array.prototype.map(function(x,index,a){})

  • 數組映射,對每一個元素按函數裏的映射方式進行映射,不直接修改原數組

Array.prototype.filter(function(x,index,a){})

  • 數組過濾,按回調函數返回值的真假,過濾掉爲真的元素,不直接修改原數組,經過返回值拿結果

Array.prototype.every(function(x,index,a){})

  • 數組判斷,每個元素,回調函數都返回真時,返回真。發現有不知足的元素,就不繼續遍歷了

Array.prototype.some(function(x,index,a){})

  • 數組判斷,存在元素,回調函數返回真時,返回真。發現有知足的元素,就不繼續遍歷了

Array.prototype.reduce(function(x,y){})

  • 數組元素累加,對數組元素逐個進行操做,每次操做的結果將用於下一次操做
  • 回調函數傳入參數
    • 第一個:上次回調函數的返回值,第一次時爲數組第一個元素
    • 第二個:此次將操做的數組元素,第一次時爲數組第二個元素

Array.prototype.indexOf(要查找的元素,開始查找的位置)

  • 查找元素
  • 返回值:首個被找到的元素在數組中的索引位置; 若沒有找到則返回 -1

Array.isArray(所要檢查的對象)

    • 檢查對象是否爲數組,是返回true,不然false
    • 爲構造器上的方法
相關文章
相關標籤/搜索