1、Array.concat(value, ...)
*描述:拼接数组
参数:接受任意个;
返回值:新数组,包含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)
*描述:测试断言函数是否对每个元素为真
参数:
predicate: 用来测试数组元素的断言函数,predicate([i], i, arrya),返回值会当做布尔值解析。true和所有真值表示该数组用过了测试或者说满足该函数所描述的条件;
o: 调用predicate时的可选this值。
返回值:如果对array的每一个元素调用predicate时都返回真值,则返回true。如果有任何一个元素调用predicate时返回假值,则返回false。范例空数组是返回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)
*描述: 返回通过断言的数组元素
参数:
predicate:用来判断array中的元素是否需要包含在返回数组中的调用函数,predicate([i], i, arrya),如果返回真值,则array中序列好为i的元素会追加到新创建的数组中。
o:调用predicate时的可选this值。
返回值:新数组,只包含那些让predicate返回真值的数组元素。
[1, 2, 3, 4].filter(function (x) {
return x > 1;
}); // [2, 3, 4]
4、Array.forEach(f, o)
*描述:为每一个数组元素调用一个函数
参数:
f:为array的每一个元素调用的函数,f([i], i, array);
o:调用f时的可选this值。
返回值:无返回值
var arr = [1, 2, 3];
arr.forEach(function (x, i, arr) {
arr[i]++; // arr现在是[2, 3, 4]
});
5、Array.indexOf(value, start)
*描述:查找数组
参数:
value: 要在array中查找的值;
start: 开始查找的可选数组序号。省略则为0。
返回值:一个大于等于start的最小序号值,该序号值处的array元素与value全等。如果不存在匹配元素时,则返回-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)
*描述:反向查找数组
参数:
value:要在array中查找的值;
start:开始查找的可选数组序号,省略则从最后一个元素开始查找。
返回值:一个小于start的最大序列号值,该序号值处的array元素与value全等,如果不存在匹配元素时,则返回-1。
7、Array.join(separator)
*描述:将数组元素拼接为字符串
参数:
separator:在返回的字符串中,用来分隔数组的某个元素与下一个元素的可选字符或字符串。如果省略默认是英文逗号(,)。
返回值: 字符串,将array的每一个元素转化为字符串,然后用separator字符串分隔开,最后拼接返回的字符串。
var arr = [1, 2, 3, 'testing'];
var str = arr.join('+'); // '1+2+3+testing'
8、Array.map(f, o)
*描述:从数组元素中计算新值
参数:
f:为array的每一个元素调用的函数。f(arr[i], i, arr),它的返回值会成为返回数组的元素。
o:f调用时的可选this值。
返回值:新数组,由函数f计算出的元素组成。
[1, 2, 3].map(function (x) {
return x*x;
}); // [1, 4, 9]
9、Array.pop()
*描述:移除并返回数组的最后一个元素
参数: 无
返回值:array的最后一个元素
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, ...)
*描述:给数组追加元素
参数:
value, ...:追加到array尾部的一个或多个值。
返回值:把指定值追加到数组后数组的新长度。(参数前一个示例:)
11、Array.reduce(f, initial)
*描述:从数组元素中计算出一个值
参数:
f:一个函数,可以合并两个值(比如两个数组元素),并返回一个‘缩减’的新值。
initial:用来缩减数组的可选初始值。如果指定该参数,reduce()的行为会像是把该参数插入array的头部一样。
返回值:数组的化简值,该值是最后一次调用f时的返回值。
[1, 2, 3, 4].reduce(function (x, y) {
return x * y;
}); // 24: ((1*2)*3)*4
12、Array.reduceRight(f, initial)
*描述:从右到左缩减数组
参数:
f:一个函数,可以合并两个值(比如两个数组元素),并返回一个‘缩减’的新值。
o:用来缩减数组的可选初始值。如果指定该函数,reduceRight()的行为会像是把该参数插入array的尾部一样。
返回值:数组的缩减值,该值是最后一次调用f时的返回值。
[2, 10, 60].reduceRight(function (x, y) {
return x/y;
}); // 3: (60/10)/2
13、Array.reverse()
*描述:颠倒数组中的元素顺序
参数:无
返回值: 无
var arr = [1, 2, 3, 4];
arr.reverse(); // [4, 3, 2, 1]
14、Array.shift()
*描述:移除数组的第一个元素
参数: 无
返回值: 数组原来的第一个元素
var arr = [1, [2, 3], 4];
arr.shift(); // 返回1; arr = [[2, 3], 4]
arr.shift(); // 返回[2, 3]; arr = [4]
15、Array.slice(start, end)
*描述:返回数组的一部分
参数:
start:数组片段开始处的数组序号。如果为负数,则表示从数组的尾部开始计算。即:-1代表最后一个元素,-2代表倒数第二个元素,以此类推。
end:数组片段结束处的后一个元素的舒祖华序号。如果没有指定,该片段会包含start开始到数组尾部的所有数组元素。如果为负数,则表示从数组的尾部开始计算。
返回值:新数组,包含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)
*描述:测试是否有元素满足断言函数
参数:
predicate:用来测试数组元素的断言函数
o:调用predicate时的可选this值。
返回值:如果array中有至少一个元素调用predicate时返回真值,则返回true。如果所有元素调用predicate时都返回假值,则返回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)
*描述:对数组元素进行排序
参数:
orderfunc:用来指定如何排序的可选函数
返回值:该数组的引用。注意实在原数组中进行排序,没有新建数组。
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, ...)
*描述:插入、删除或替换数组元素
参数:
start:开始插入和(或)删除处的数组元素的序号。
deleteCount:要删除的元素个数,从start开始,并包含start处的元素。如果指定为0,表示插入元素,而不用删除任何元素。
value, ...:要插入数组中的零个或多个值,从start序号处开始插入。
返回值:如果从array中删除了元素,则返回一个新数组,包含这些删除的元素。
var arr = [1, 2, 3, 4, 5, 6, 7, 8];
arr.splice(1, 2); // [2, 3]
19、Array.unshift(value, ...)
*描述:在数组头部插入元素
参数:
value, ...:要插入array头部的一个或多个值
返回值:数组的新长度
var arr = [];
arr.unshift(1); // 1
arr.unshift(22); //2