array中新增的方法
reduce:
描述:对数组中的所有元素调用指定的回调函数。 该回调函数的返回值为累积结果,并且此返回值在下一次调用该回调函数时作为参数提供。
语法:array.reduce(callback [, initValue])
参数:
callback 一个接受最多四个参数的函数。 对于数组中的每个元素,reduce 方法都会调用 callback 函数一次。
previousValue: 通过上一次调用回调函数获得的值,如果reduce方法提供了initValue,则在首次调用函数时previousValue = initValue
currentValue: 当前数组元素的值
currentIndex: 当前数组元素的数字索引
array: 该数组
返回值:返回最后一次调用回调函数获得的累计结果
备注:如果提供了initValue,则reduce方法会对数组中的每个元素调用一次callback(按升序顺序)。如果未提供initValue,则reduce方法会对从第二个元素开始的每个元素调用callback函数
回调函数的返回值在下一次调用回调函数时作为previousValue参数提供。最后一次调用回调函数获得的返回值为reduce方法的返回值。不为数组中缺少的元素调用该回调函数。
1 var arr = [1,2,3,4,5]; 2 3 function callback(previousValue, currentValue, index, arr) 4 { 5 var result = previousValue + currentValue; 6 console.log(result); 7 return result; 8 } 9 10 arr.reduce(callback);
map:
描述:对数组的每个元素调用定义的回调函数并返回包含结果的数组。
语法:array.map(callback [,thisArg])
参数:
callback: 最多可以接受三个参数的函数。 对于数组中的每个元素,map 方法都会调用 callbackfn 函数一次。
value: 数组元素的值
index: 索引值
array: 该数组
thisArg: callbackfn 函数中的 this 关键字可引用的对象。 如果省略 thisArg,则 undefined 将用作 this 值。
返回值:一个新数组,其中的每个元素均为关联的原始数组元素的回调函数返回值。
备注:对于数组中的每个元素,map 方法都会调用 callback 函数一次(采用升序索引顺序)。 将不会为数组中缺少的元素调用回调函数。
除了数组对象之外,map 方法可由具有 length 属性且具有已按数字编制索引的属性名的任何对象使用。
1 var arr = [1,2,3,4,5]; 2 3 function callback(value, index, arr){ 4 return value*value; 5 } 6 7 arr.map(callback);
filter:
描述:返回数组中的满足回调函数中指定的条件的元素。
语法:array.filter(callback [,thisArg])
参数:
callback: 一个接受最多三个参数的函数。 对于数组中的每个元素,filter 方法都会调用 callbackfn 函数一次。
value: 数组元素的值
index: 索引值
array: 该数组
thisArg: 可在 callback 函数中为其引用 this 关键字的对象。 如果省略 thisArg,则 undefined 将用作 this 值。
返回值:一个包含回调函数为其返回 true 的所有值的新数组。 如果回调函数为 array 的所有元素返回 false,则新数组的长度为 0。
备注:对于数组中的每个元素,filter 方法都会调用 callback 函数一次(采用升序索引顺序)。 不为数组中缺少的元素调用该回调函数。
除了数组对象之外,filter 方法可由具有 length 属性且具有已按数字编制索引的属性名的任何对象使用。
1 var arr = [1,2,3,4,5]; 2 3 function callback(value, index, arr){ 4 if(value%2 == 0){ 5 return false; 6 } 7 return true; 8 } 9 10 arr.filter(callback)
some:
描述:确定指定的回调函数是否为数组中的任何元素均返回true
语法:array.some(callback [,thisArg])
参数:
callback:一个接受最多三个参数的函数。 some 方法会为 array 中的每个元素调用 callback 函数,直到 callbackfn 返回 true,或直到到达数组的结尾。
value: 数组元素的值
index: 索引值
array: 该数组
thisArg: 可在 callback 函数中为其引用 this 关键字的对象。 如果省略 thisArg,则 undefined 将用作 this 值。
返回值:如果 callback 函数为任何数组元素均返回 true,则为 true;否则为 false。
备注: some 方法会按升序索引顺序对每个数组元素调用 callback 函数,直到 callbackfn 函数返回 true。 如果找到导致 callback 返回 true 的元素,则 some 方法会立即返回 true。 如果回调不对任何元素返回 true,则 some 方法会返回 false。
不为数组中缺少的元素调用该回调函数。
除了数组对象之外,some 方法可由具有 length 属性且具有已按数字编制索引的属性名的任何对象使用。
1 var arr = [1,2,3,4,5]; 2 3 function callback(value, index, arr){ 4 console.log(value); 5 if(value == 4){ 6 return true; 7 } 8 return false; 9 } 10 11 arr.some(callback);
every:
描述:确定数组的所有成员是否满足指定的测试。
语法:array.every(callback [,thisArg])
参数:
callback: 一个接受最多三个参数的函数。 every 方法会为 array 中的每个元素调用 callback 函数,直到 callback 返回 false,或直到到达数组的结尾。
value: 数组元素的值
index: 索引值
array: 该数组
thisArg: 可在 callback 函数中为其引用 this 关键字的对象。 如果省略 thisArg,则 undefined 将用作 this 值。
返回值:如果 callback 函数为所有数组元素返回 true,则为 true;否则为 false。 如果数组没有元素,则 every 方法将返回 true。
备注:every 方法会按升序顺序对每个数组元素调用一次 callback 函数,直到 callback 函数返回 false。 如果找到导致 callback 返回 false 的元素,则 every 方法会立即返回 false。 否则,every 方法返回 true。
不为数组中缺少的元素调用该回调函数。
除了数组对象之外,every 方法可由具有 length 属性且具有已按数字编制索引的属性名的任何对象使用。
1 var arr = [1,2,3,4,5]; 2 3 function callback(value, index, arr){ 4 console.log(value); 5 if(value > 0){ 6 return true; 7 } 8 return false; 9 } 10 11 arr.every(callback);
forEach:
描述:该方法让数组中的每一项都执行一次给定的函数
语法:array.forEach(callback [, thisArg])
参数:
callback 在数组每一项上执行的函数,该函数接收三个参数
currentValue: 当前项的值
index: 索引
array: 数组本身
thisArg 可选。用来当作callback函数内this的值的对象
备注:对于数组中出现的每个元素,forEach 方法都会调用 callback 函数一次(采用升序索引顺序)。 将不会为数组中缺少的元素调用回调函数。
除了数组对象之外,forEach 方法可由具有 length 属性且具有已按数字编制索引的属性名的任何对象使用。
forEach 方法不直接修改原始数组,但回调函数可能会修改它
1 var arr = [1,2,3,4,5]; 2 3 function callback(value, index, arr){ 4 console.log('第'+ index +'个元素是:' + value); 5 } 6 7 arr.forEach(callback);
indexOf:
描述:返回某个值在数组中的第一个匹配项的索引。
语法:array.indexOf(searchElement, [,formIndex])
参数:
searchElement: 要在array中定位的值
formIndex: 用于开始搜索的数组索引。 如果省略 fromIndex,则从索引 0 处开始搜索.
返回值:数组中的 searchElement 的第一个匹配项的索引;如果未找到 searchElement,则为 -1。
备注:数组元素将与 searchElement 值进行全等比较,与 === 运算符类似。 有关更多信息,请参见比较运算符 (JavaScript)。
可选 fromIndex 参数指定用于开始搜索的数组索引。 如果 fromIndex 大于或等于数组长度,则返回 -1。 如果 fromIndex 为负,则搜索从数组长度加上 fromIndex 的位置处开始。
1 var obj1 = {name: 'lee', age: 18}, obj2 = {name: 'lucy', age: 18}, obj3 = {name: 'Jam', age: 18}; 2 var arr = [obj1, obj2, obj3]; 3 4 arr.indexOf(obj2);