JavaScript數(shù)組總結(jié)

有哪些創(chuàng)建數(shù)組的方法?

js創(chuàng)建數(shù)組有以下三種方法:

  • 隱式創(chuàng)建
var arr = ['elem1','elem2','elem3'];
  • 直接實(shí)例化
var arr = new Array('elem1','elem2','elem3')
  • 創(chuàng)建數(shù)組并給數(shù)組元素賦值
var arr = new Array();
arr[0] = 'elem1';
arr[1] = 'elem2';
arr[2] = 'elem3';
  • 創(chuàng)建一個(gè)長(zhǎng)度為3的數(shù)組
var arr = new Array(3);

遍歷數(shù)組

A.

var weekdays = ['Tue','Wen','Thur'];
for(let key in weekdays){
  console.log(key,weekdays[key]);
}

B.

var weekdays = ['Tue','Wen','Thur'];
for(let i = 0;i < weekdays.length;i++){
  console.log(i,weekdays[i]);
}

C.

var weekdays = ['Tue','Wen','Thur'];
weekdays.forEach(items=>{console.log(items);});

關(guān)于數(shù)組的重要屬性

arr.length返回?cái)?shù)組長(zhǎng)度

關(guān)于數(shù)組的重要方法

  1. forEach()

解釋:
循環(huán)遍歷數(shù)組

語(yǔ)法:

arr.forEach(function(currentValue, index, arr), thisValue)
  • currentValue:必填粗蔚,當(dāng)前元素众雷。
  • index:可選蒙兰,當(dāng)前元素的索引扇住。
  • arr:可選,當(dāng)前元素所屬的數(shù)組對(duì)象缝其。
  • thisValue:可選,傳遞給函數(shù)的值一般用this值徘六,如果這個(gè)參數(shù)為空内边,"undefined"會(huì)傳遞給"this"值。(這個(gè)參數(shù)一般很少填)
  • 可以利用return跳過(guò)循環(huán)中的某一次迭代
  1. pop()

解釋:
刪除數(shù)組最后一個(gè)元素并作為返回值返回待锈,數(shù)組長(zhǎng)度會(huì)因此減1,返回值類型取決于刪除的元素類型.

語(yǔ)法:

arr.pop()
  1. shift()

解釋:刪除數(shù)組第一個(gè)元素并作為返回值返回漠其,數(shù)組長(zhǎng)度會(huì)因此減1.常用于while循環(huán)中,依次打印輸出數(shù)組中的元素并清空數(shù)組,返回值類型取決于刪除的元素類型.

語(yǔ)法:

arr.shift()
  1. push()

解釋:給原數(shù)組末尾添加一個(gè)或多個(gè)元素和屎,返回值為添加元素后數(shù)組的長(zhǎng)度拴驮,為number類型.

語(yǔ)法:

arr.push(element1[, ...[, elementN]])
  1. unshift()

解釋:給原數(shù)組開頭添加一個(gè)或多個(gè)元素,返回值為添加元素后數(shù)組的長(zhǎng)度柴信,為number類型.

語(yǔ)法:

arr.unshift(element1[, ...[, elementN]])
  1. join()

解釋:將數(shù)組中元素組合成為一個(gè)字符串套啤,返回值對(duì)應(yīng)組合的字符串,為string類型

語(yǔ)法:

arr.join([separator])
  • separator:用來(lái)分隔數(shù)組中的每個(gè)元素随常,如果為空潜沦,則組合成的字符串會(huì)默認(rèn)把原始的數(shù)組中每個(gè)元素用,隔開。
  1. reverse()

解釋:在原數(shù)組上操作绪氛,將原數(shù)組中元素逆序,返回值為逆序操作后的數(shù)組

語(yǔ)法:

arr.reverse()
  1. slice()

解釋:不改變?cè)瓟?shù)組唆鸡,淺拷貝的方式截取原數(shù)組的一部分,返回值為截取下來(lái)的部分,為數(shù)組類型.

語(yǔ)法:

arr.slice([begin[, end]])
  • begin 開始截取的位置枣察,默認(rèn)值為0争占,即從數(shù)組最開始截取
  • end 停止截取的位置的后一位,默認(rèn)值為arr.length序目,即截取到數(shù)組末尾
  • 對(duì)beignend其值可以為負(fù)數(shù)燃乍,代表倒數(shù)第幾個(gè)元素
  1. splice()

解釋:在原數(shù)組上操作,替換/刪除原數(shù)組的部分元素宛琅,并插入一個(gè)或多個(gè)新元素刻蟹,返回值為被替換/刪除掉的元素。如果被替換/刪除掉多個(gè)元素嘿辟,則返回被刪除掉的子數(shù)組舆瘪;如果沒(méi)被刪除/替換掉任何元素,則返回空數(shù)組红伦。

語(yǔ)法:

var arrDeletedItems = array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
  • start 開始替換/刪除的位置
  • deleteCount 從開始位置數(shù)起英古,總共替換/刪除掉元素的個(gè)數(shù)
  • item 需要插入的新元素,如果為空則不添加任何新元素

[Exercise] 用splice()編寫一個(gè)函數(shù)昙读,實(shí)現(xiàn)數(shù)組元素交換位置

/* exercise for splice() */

function swapArray(arr, index1, index2) {
  arr[index1] = arr.splice(index2, 1, arr[index1])[0];
  return arr;
}
  1. sort()

解釋:在原數(shù)組上操作召调,對(duì)原數(shù)組進(jìn)行排序,默認(rèn)為將數(shù)組元素轉(zhuǎn)化為字符串后蛮浑,比較對(duì)應(yīng)字符串的UTF-16編碼值唠叛,升序排序。返回值為排序后的數(shù)組沮稚。

語(yǔ)法:

arr.sort([compareFunction])
  • compareFunction(a, b): 該函數(shù)為用戶自定義艺沼,包含兩個(gè)參數(shù)a,b.sort()方法會(huì)調(diào)用該用戶自定義函數(shù)來(lái)排序,且如何排序取決于該函數(shù)的返回值蕴掏。如果返回值為負(fù)障般,則a的位置要比b靠前调鲸;如果返回值為正,則a的位置比b靠后;如果返回值為0,則a,b相對(duì)位置保持不變挽荡。
  1. reduce()

解釋:對(duì)數(shù)組的每個(gè)元素遍歷執(zhí)行reducer函數(shù)藐石,并只返回一個(gè)值。

語(yǔ)法:

arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])
  • callback: 回調(diào)函數(shù)定拟,在特定的事件或條件發(fā)生時(shí)由另外的一方調(diào)用的贯钩,用于對(duì)該事件或條件進(jìn)行響應(yīng),因?yàn)槭褂么撕瘮?shù)可以把調(diào)用者與被調(diào)用者分開办素,所以調(diào)用者不關(guān)心誰(shuí)是被調(diào)用者角雷。它只需知道存在一個(gè)具有特定原型和限制條件的被調(diào)用函數(shù)。簡(jiǎn)而言之性穿,回調(diào)函數(shù)就是允許用戶把需要調(diào)用的函數(shù)的指針作為參數(shù)傳遞給一個(gè)函數(shù)勺三,以便該函數(shù)在處理相似事件的時(shí)候可以靈活的使用不同的方法,即把函數(shù)作為參數(shù)使用的函數(shù)需曾。
    Callback Explained
  • accumulator: 累計(jì)的回調(diào)函數(shù)的返回值
  • currentValue: 當(dāng)前在被回調(diào)函數(shù)處理的數(shù)組元素
  • index: 當(dāng)前在被回調(diào)函數(shù)處理的數(shù)組元素的數(shù)組下標(biāo)
  • array: 被處理的數(shù)組
  • initialValue: accumulator的初始值吗坚,如果用戶不提供,則會(huì)把數(shù)組第一個(gè)元素作為初始值呆万,并且回調(diào)函數(shù)會(huì)從第二個(gè)元素開始處理商源。
  1. map()

解釋:用回調(diào)函數(shù)依次處理原數(shù)組的每一個(gè)元素,并返回處理后的新數(shù)組.將被map()處理的元素范圍在第一次調(diào)用回調(diào)函數(shù)之前便已經(jīng)確定.

語(yǔ)法:

var new_array = arr.map(function callback(currentValue[, index[, array]]) {
    // Return element for new_array
}[, thisArg])
  • currentValue: 當(dāng)前在被回調(diào)函數(shù)處理的數(shù)組元素
  • index: 當(dāng)前在被回調(diào)函數(shù)處理的數(shù)組元素的數(shù)組下標(biāo)
  • array: 被處理的數(shù)組
  • this: 回調(diào)函數(shù)的this
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末谋减,一起剝皮案震驚了整個(gè)濱河市牡彻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌出爹,老刑警劉巖庄吼,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異严就,居然都是意外死亡总寻,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門梢为,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)渐行,“玉大人,你說(shuō)我怎么就攤上這事铸董∷钣。” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵袒炉,是天一觀的道長(zhǎng)旁理。 經(jīng)常有香客問(wèn)我,道長(zhǎng)我磁,這世上最難降的妖魔是什么孽文? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮夺艰,結(jié)果婚禮上芋哭,老公的妹妹穿的比我還像新娘。我一直安慰自己郁副,他們只是感情好减牺,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著存谎,像睡著了一般拔疚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上既荚,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天稚失,我揣著相機(jī)與錄音,去河邊找鬼恰聘。 笑死句各,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的晴叨。 我是一名探鬼主播凿宾,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼兼蕊!你這毒婦竟也來(lái)了初厚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤孙技,失蹤者是張志新(化名)和其女友劉穎惧所,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绪杏,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡下愈,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蕾久。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片势似。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖僧著,靈堂內(nèi)的尸體忽然破棺而出履因,到底是詐尸還是另有隱情,我是刑警寧澤盹愚,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布栅迄,位于F島的核電站,受9級(jí)特大地震影響皆怕,放射性物質(zhì)發(fā)生泄漏毅舆。R本人自食惡果不足惜西篓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望憋活。 院中可真熱鬧岂津,春花似錦、人聲如沸悦即。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)辜梳。三九已至粱甫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間作瞄,已是汗流浹背茶宵。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留粉洼,地道東北人节预。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像属韧,于是被迫代替她去往敵國(guó)和親安拟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容