js數(shù)組方法大全

1评凝、Array.concat(value, ...)

*描述:拼接數(shù)組
參數(shù):接受任意個(gè)窟扑;
返回值:新數(shù)組赋除,包含array的元素以及拼接的新元素

var arr = [1, 2, 3, 4];
console.log(arr.concat(5, [6, 7], 8));  // [1, 2, 3, 4, 5, 6, 7, 8]
2、Array.every(predicate, 0)

*描述:測試斷言函數(shù)是否對每個(gè)元素為真
參數(shù):
predicate: 用來測試數(shù)組元素的斷言函數(shù)戳护,predicate([i], i, arrya)金抡,返回值會(huì)當(dāng)做布爾值解析瀑焦。true和所有真值表示該數(shù)組用過了測試或者說滿足該函數(shù)所描述的條件;
o: 調(diào)用predicate時(shí)的可選this值梗肝。
返回值:如果對array的每一個(gè)元素調(diào)用predicate時(shí)都返回真值蝠猬,則返回true。如果有任何一個(gè)元素調(diào)用predicate時(shí)返回假值统捶,則返回false。范例空數(shù)組是返回true柄粹。

[1, 2, 3].every(function (x) {
    return x < 5;  // true, 所有元素都 < 5
})喘鸟;
[1, 2, 3].every(function (x) {
    return  x < 3; // false, 不是所有元素都 < 3
});
[].every(function (x) {
    return false;  // true, []總是返回true
});
3、Array.filter(predicate, o)

*描述: 返回通過斷言的數(shù)組元素
參數(shù):
predicate:用來判斷array中的元素是否需要包含在返回?cái)?shù)組中的調(diào)用函數(shù)驻右,predicate([i], i, arrya)什黑,如果返回真值,則array中序列好為i的元素會(huì)追加到新創(chuàng)建的數(shù)組中堪夭。
o:調(diào)用predicate時(shí)的可選this值愕把。
返回值:新數(shù)組,只包含那些讓predicate返回真值的數(shù)組元素森爽。

[1, 2, 3, 4].filter(function (x) {
    return x > 1;
});  // [2, 3, 4]
4恨豁、Array.forEach(f, o)

*描述:為每一個(gè)數(shù)組元素調(diào)用一個(gè)函數(shù)
參數(shù):
f:為array的每一個(gè)元素調(diào)用的函數(shù),f([i], i, array)爬迟;
o:調(diào)用f時(shí)的可選this值橘蜜。
返回值:無返回值

var arr = [1, 2, 3];
arr.forEach(function (x, i, arr) {
    arr[i]++;  // arr現(xiàn)在是[2, 3, 4]
});
5、Array.indexOf(value, start)

*描述:查找數(shù)組
參數(shù):
value: 要在array中查找的值付呕;
start: 開始查找的可選數(shù)組序號(hào)计福。省略則為0。
返回值:一個(gè)大于等于start的最小序號(hào)值徽职,該序號(hào)值處的array元素與value全等象颖。如果不存在匹配元素時(shí),則返回-1姆钉。

['a', 'b', 'c'].indexOf('b')  // 1
['a', 'b', 'c'].indexOf('d')  // -1
['a', 'b', 'c'].indexOf('a', 1) // -1
6说订、Array.lastIndexOf(value, start)

*描述:反向查找數(shù)組
參數(shù):
value:要在array中查找的值;
start:開始查找的可選數(shù)組序號(hào)育韩,省略則從最后一個(gè)元素開始查找克蚂。
返回值:一個(gè)小于start的最大序列號(hào)值,該序號(hào)值處的array元素與value全等筋讨,如果不存在匹配元素時(shí)埃叭,則返回-1。

7悉罕、Array.join(separator)

*描述:將數(shù)組元素拼接為字符串
參數(shù):
separator:在返回的字符串中赤屋,用來分隔數(shù)組的某個(gè)元素與下一個(gè)元素的可選字符或字符串立镶。如果省略默認(rèn)是英文逗號(hào)(,)。
返回值: 字符串类早,將array的每一個(gè)元素轉(zhuǎn)化為字符串媚媒,然后用separator字符串分隔開,最后拼接返回的字符串涩僻。

var arr = [1, 2, 3, 'testing'];
var str = arr.join('+');  // '1+2+3+testing'
8缭召、Array.map(f, o)

*描述:從數(shù)組元素中計(jì)算新值
參數(shù):
f:為array的每一個(gè)元素調(diào)用的函數(shù)。f(arr[i], i, arr)逆日,它的返回值會(huì)成為返回?cái)?shù)組的元素嵌巷。
o:f調(diào)用時(shí)的可選this值。
返回值:新數(shù)組室抽,由函數(shù)f計(jì)算出的元素組成搪哪。

[1, 2, 3].map(function (x) {
    return x*x;
});  // [1, 4, 9]
9、Array.pop()

*描述:移除并返回?cái)?shù)組的最后一個(gè)元素
參數(shù): 無
返回值:array的最后一個(gè)元素

var stack = [];  // stack: []
stack.push(1, 2);  // stack: [1, 2]    返回2
stack.pop();  // stack: [1]  返回2
stack.push(4, 5);  // stack: [1, [4, 5]]  2
stack.pop();  // stack: [1]  返回[4, 5]
stack.pop();  // stack: []  返回1
10坪圾、Array.push(value, ...)

*描述:給數(shù)組追加元素
參數(shù):
value, ...:追加到array尾部的一個(gè)或多個(gè)值晓折。
返回值:把指定值追加到數(shù)組后數(shù)組的新長度。(參數(shù)前一個(gè)示例:)

11兽泄、Array.reduce(f, initial)

*描述:從數(shù)組元素中計(jì)算出一個(gè)值
參數(shù):
f:一個(gè)函數(shù)漓概,可以合并兩個(gè)值(比如兩個(gè)數(shù)組元素),并返回一個(gè)‘縮減’的新值已日。
initial:用來縮減數(shù)組的可選初始值垛耳。如果指定該參數(shù),reduce()的行為會(huì)像是把該參數(shù)插入array的頭部一樣飘千。
返回值:數(shù)組的化簡值堂鲜,該值是最后一次調(diào)用f時(shí)的返回值。

[1, 2, 3, 4].reduce(function (x, y) {
    return x * y;
});  // 24: ((1*2)*3)*4
12护奈、Array.reduceRight(f, initial)

*描述:從右到左縮減數(shù)組
參數(shù):
f:一個(gè)函數(shù)缔莲,可以合并兩個(gè)值(比如兩個(gè)數(shù)組元素),并返回一個(gè)‘縮減’的新值霉旗。
o:用來縮減數(shù)組的可選初始值痴奏。如果指定該函數(shù),reduceRight()的行為會(huì)像是把該參數(shù)插入array的尾部一樣厌秒。
返回值:數(shù)組的縮減值读拆,該值是最后一次調(diào)用f時(shí)的返回值。

[2, 10, 60].reduceRight(function (x, y) {
    return x/y;
});  // 3: (60/10)/2
13鸵闪、Array.reverse()

*描述:顛倒數(shù)組中的元素順序
參數(shù):無
返回值: 無

var arr = [1, 2, 3, 4];
arr.reverse();  // [4, 3, 2, 1]
14檐晕、Array.shift()

*描述:移除數(shù)組的第一個(gè)元素
參數(shù): 無
返回值: 數(shù)組原來的第一個(gè)元素

var arr = [1, [2, 3], 4];
arr.shift(); // 返回1;  arr = [[2, 3], 4]
arr.shift();  // 返回[2, 3]; arr = [4]
15、Array.slice(start, end)

*描述:返回?cái)?shù)組的一部分
參數(shù):
start:數(shù)組片段開始處的數(shù)組序號(hào)。如果為負(fù)數(shù)辟灰,則表示從數(shù)組的尾部開始計(jì)算个榕。即:-1代表最后一個(gè)元素,-2代表倒數(shù)第二個(gè)元素芥喇,以此類推西采。
end:數(shù)組片段結(jié)束處的后一個(gè)元素的舒祖華序號(hào)。如果沒有指定继控,該片段會(huì)包含start開始到數(shù)組尾部的所有數(shù)組元素械馆。如果為負(fù)數(shù),則表示從數(shù)組的尾部開始計(jì)算武通。
返回值:新數(shù)組狱杰,包含array中從start一直到end之間的所有元素(包含start指定的元素,但不包含end指定的元素)厅须。

var arr = [1, 2, 3, 4, 5];
arr.slice(0, 3); // [1, 2, 3]
arr.slice(3); // [4, 5]
arr.slice(1, -1); // [2, 3, 4]
arr.slice(-3, -2); // [3]
16、Array.some(predicate, o)

*描述:測試是否有元素滿足斷言函數(shù)
參數(shù):
predicate:用來測試數(shù)組元素的斷言函數(shù)
o:調(diào)用predicate時(shí)的可選this值食棕。
返回值:如果array中有至少一個(gè)元素調(diào)用predicate時(shí)返回真值朗和,則返回true。如果所有元素調(diào)用predicate時(shí)都返回假值簿晓,則返回false眶拉。

[1, 2, 3].some(function (x) {
    return x > 5;
});  // false,沒有元素 > 5
[1, 2, 3].some(function (x) {
    return x > 2;
}); // true, 有些元素 > 2
[].some(function (x) {
    return false;
});  // false, []總是返回false
17、Array.sort(orderfunc)

*描述:對數(shù)組元素進(jìn)行排序
參數(shù):
orderfunc:用來指定如何排序的可選函數(shù)
返回值:該數(shù)組的引用憔儿。注意實(shí)在原數(shù)組中進(jìn)行排序忆植,沒有新建數(shù)組。

arr = [33, 4, 1111, 222];
arr.sort();  // 1111, 222, 33, 4
arr.sort(function (a, b) {
    return a - b;
}); // 4, 33, 222, 4444
18谒臼、Array.splice(start, deleteCount, value, ...)

*描述:插入朝刊、刪除或替換數(shù)組元素
參數(shù):
start:開始插入和(或)刪除處的數(shù)組元素的序號(hào)。
deleteCount:要?jiǎng)h除的元素個(gè)數(shù)蜈缤,從start開始拾氓,并包含start處的元素。如果指定為0底哥,表示插入元素咙鞍,而不用刪除任何元素。
value, ...:要插入數(shù)組中的零個(gè)或多個(gè)值趾徽,從start序號(hào)處開始插入续滋。
返回值:如果從array中刪除了元素,則返回一個(gè)新數(shù)組孵奶,包含這些刪除的元素疲酌。

var arr = [1, 2, 3, 4, 5, 6, 7, 8];
arr.splice(1, 2);   // [2, 3]
19、Array.unshift(value, ...)

*描述:在數(shù)組頭部插入元素
參數(shù):
value, ...:要插入array頭部的一個(gè)或多個(gè)值
返回值:數(shù)組的新長度

var arr = [];
arr.unshift(1); // 1
arr.unshift(22);  //2
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末拒课,一起剝皮案震驚了整個(gè)濱河市徐勃,隨后出現(xiàn)的幾起案子事示,更是在濱河造成了極大的恐慌,老刑警劉巖僻肖,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肖爵,死亡現(xiàn)場離奇詭異,居然都是意外死亡臀脏,警方通過查閱死者的電腦和手機(jī)劝堪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來揉稚,“玉大人秒啦,你說我怎么就攤上這事〔缶粒” “怎么了余境?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長灌诅。 經(jīng)常有香客問我芳来,道長,這世上最難降的妖魔是什么猜拾? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任即舌,我火速辦了婚禮,結(jié)果婚禮上挎袜,老公的妹妹穿的比我還像新娘顽聂。我一直安慰自己,他們只是感情好盯仪,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布紊搪。 她就那樣靜靜地躺著,像睡著了一般全景。 火紅的嫁衣襯著肌膚如雪嗦明。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天蚪燕,我揣著相機(jī)與錄音娶牌,去河邊找鬼。 笑死馆纳,一個(gè)胖子當(dāng)著我的面吹牛诗良,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鲁驶,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼鉴裹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起径荔,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤督禽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后总处,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體狈惫,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年鹦马,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了胧谈。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,133評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡荸频,死狀恐怖菱肖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情旭从,我是刑警寧澤稳强,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站和悦,受9級特大地震影響键袱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜摹闽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望褐健。 院中可真熱鬧付鹿,春花似錦、人聲如沸蚜迅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谁不。三九已至坐梯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間刹帕,已是汗流浹背吵血。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留偷溺,地道東北人蹋辅。 一個(gè)月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像挫掏,于是被迫代替她去往敵國和親侦另。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評論 2 355

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