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