every():测试断言函数是否对每个数组元素为真
array.ervery(predicate,o);
参数predicate
:断言函数,有三个参数predicate(array[i],i,array),返回值被当做布尔值解析。所有数组元素通过断言函数的返回值都可以被转换成布尔真时,every()
方法返回true;
参数o
:调用predicate时可选的this值,可选;
例子:
[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
filter():过滤数组元素,返回一个满足条件的新数组
array.filter(predicate,o);
参数predicate
:过滤函数,有三个参数predicate(array[i],i,array),按序号从小到大遍历array,每个数组元素调用一次predicate,若返回值为真,则该数组元素会添加到返回的数组中;
参数o
:调用predicate时可选的this值,可选;
例子:
[1,2,3].filter(function(x){return x>1}); //=>[2,3]
forEach():便利数组元素,并对每一个元素调用一次f
array.forEach(f,o);
参数f
:为array的每一个元素调用的函数(序号从小到大);
参数o
:调用f时可选的this值,可选;
例子:
var a = [1,2,3];
a.forEach(function(x,i,array){array[i]++}); //a现在的值是[2,3,4]。forEach没有返回值。
indexOf():在数组中查找值
array.indexOf(value,start);
参数value
:要查找的值;
参数start
:开始查找数组元素的序号,可选参数,不传则从0开始查找;
若找到该值(用'===='
判断),则方法返回该值的索引位置,若没有找到,返回-1。
例子:
['a','b','c'].indexOf('b'); // => 1
['a','b','c'].indexOf('a',1); // => -1
['a','b','c'].indexOf('d'); // => -1
lastIndexOf():在数组中查找值(反向)
array.lastIndexOf(value,start);
参数value
:要查找的值;
参数start
:开始查找数组元素的序号,可选参数,不传则从最后一个元素开始查找;
若找到该值(用'===='
判断),则方法返回该值的索引位置,若没有找到,返回-1,查找的方向与indexOf相反。
map():按某种规则处理每个数组元素,返回一个等长的新的数组
array.map(f,o);
参数f
:数组的处理函数,有三个参数f (array[i],i,array),该方法返回的值会成为map
方法返回数组的一个元素,索引为i
;
参数o
:调用f时可选的this值,可选;
例子:
[1,2,3].map(function(x){return x*x;}); // => [1,4,9]
reduce():从数组中计算出一个值
reduceRight():从数组中计算出一个值(从右到左)
reduceRight()
方法与reduce()
方法只有一点不同:reduceRight()方法遍历数组的时候是从右到左(从最大序号到最小序号)。
some():测试是否有数组元素满足断言函数
参数predicate
:断言函数,有三个参数predicate(array[i],i,array);
参数o
:调用predicate时可选的this值,可选;
some()
方法与every()
很相似,不同的是,some()
并不需要所有的数组元素在调用predicate时都返回真,只需要有一个元素在调用predicate时返回真,some()
就会停止遍历,并返回true。