5.2 Array類型

Array簡介

Array數組的每一項可以保存任何類型的數據,可以用數組的第一個位置保存字符串,第二個位置保存數值,第三個位置保存數值,以此類推。

創建Array的方式

  • 使用構造器創建
    var colors = new Array();
    var colors = new Array(20)
    var colors = new Array("red","blue","yellow")
  • 使用數組字面量創建
    var colors = ["red","blue","yellow"];
    var values = [1,2,] //不要這樣創建
    在IE中values會成為一個包含3個項的且每項的值分別為1,2,undefined的數組,其他瀏覽器中會成為一個包含2項且值分別為1和2的數組。
    與對象一樣,在使用數組字面量創建數組時,也會調用Array構造函數。

讀取和設置元素值

var colors = ["red","blue","green"];
alert(colors[0]); //顯示第一項
colors[2] = "black"; // 修改第三項
colors[3] ="brown" //增加第四項

方括號中的索引表示要訪問的值,索引小于數組中的項數,則返回對應的值。

數組的length屬性

length屬性不是只讀的,可以通過它從數組的末尾移除項或添加新項。

var colors = ["red","blue","green"]
colors.length = 2;
alert(colors[2]); //undefined

檢測數組

  • instanceof
    instanceof只有一個全局執行環境
    -Array.isArray()

棧方法

  • push()
    可以接受任意數量的參數,把它們逐個添加到數組末尾,并返回修改后數組的長度
  • pop()
    從數組末尾移除最后一項,減少數組的length,并返回移除的項

隊列方法

模擬隊列只需從一個數組前段取得項

  • shift()
    移除數組中的第一個項,并返回該項,同時數組長度減1.
  • unshift()
    能夠在數組前段添加任意個項并返回數組新長度

重排序方法

  • reverse()
  • sort()
    sort可以接收一個比較函數作為參數,以便我們指定哪個值位于哪個值的前面
function(value1,value2){
    if(value1<value2){
        return -1;
   }
   else if(value1>value2){
        return 1;
  }else{
      return 0;
}
var values = [0,1,5,10,15]
values.sort(compare);
alert(values) // 0,1,5,10,15

操作方法

  • concat()
    可以基于當前數組的所有項創建一個新數組
var colors = ["red","green","blue"]
var colors2 = colors.concat["yellow",["black","brown"]);
alert(colors); //red,green,blue,yellow,black,brown
  • slice()
    它能夠基于當前數組中的一個或多個項創建一個新數組。slice()方法可以接受一個或兩個參數,即要返回的起始和結束位置。
    在只有一個參數的情況下,slice只返回從參數指定位置開始到當前數組末尾的所有項。
    如果有兩個參數,slice返回起始和結束位置之間的項,但不包括結束位置的項。

  • splice()
    向數組的中部插入項

  • indexOf()
    從數組的開頭開始向后查找

  • lastIndexOf()從數組的末尾開始查找

迭代方法

  • every()
    對數組中的每一項運行給定函數,如果該函數每一項都返回true,則返回true

-some()
對數組中的每一項運行給定函數,如果該函數對任意項返回true,則返回true。

forEach()對數組中的每一項運行給定函數,沒有返回值

-map()

-filter()

歸并方法

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,048評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,414評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,169評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,722評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,465評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,823評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,813評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,000評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,554評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,295評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,513評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,035評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,722評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,125評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,430評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,237評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,482評論 2 379

推薦閱讀更多精彩內容

  • 第5章 引用類型(返回首頁) 本章內容 使用對象 創建并操作數組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,263評論 0 4
  • 第2最常用類型。 特點: 數據的有序列表 數據的每一項可以保存任何類型的數據 數組的大小可以動態調整、自動增長 創...
    AbbyLC閱讀 293評論 0 0
  • Chapter 5 引用類型 Object類型 創建Object實例new Object()var person ...
    云之外閱讀 393評論 0 0
  • 引用類型與傳統面向對象程序設計中的類相似,但實現不同。 對象在 JavaScript 中被稱為引用類型的值,而且有...
    BertFu閱讀 334評論 0 0
  • 第一章: JS簡介 從當初簡單的語言,變成了現在能夠處理復雜計算和交互,擁有閉包、匿名函數, 甚至元編程等...
    LaBaby_閱讀 1,688評論 0 6