数组一些新方法
1、Array.prototype.forEach()
forEach() 方法让数组的每一项都执行一次给定的函数。
语法:
array.forEach(callback[, thisArg])
参数
callback在数组每一项上执行的函数,接收三个参数:
- currentValue
- 当前项(指遍历时正在被处理那个数组项)的值。
- index
- 当前项的索引(或下标)。
- array
- 数组本身。
thisArg可选参数。用来当作callback函数内this的值的对象。
示例
var arr = [1,2,3]; arr.forEach(function(item, index, array){ console.log(item); });
2、Array.prototype.map()
map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。
语法:
array.map(callback[, thisArg])
参数
callback原数组中的元素经过该方法后返回一个新的元素。
currentValuecallback的第一个参数,数组中当前被传递的元素。indexcallback的第二个参数,数组中当前被传递的元素的索引。arraycallback的第三个参数,调用map方法的数组。
thisArg执行callback函数时this指向的对象。
var arr = [1,2,3]; var newArr = arr.map(function(item, index, array){ return item+1; }); console.log(newArr); //[2,3,4] console.log(arr); //[1,2,3]
3、Array.prototype.reduce()
reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始合并,最终为一个值。
语法:
arr.reduce(callback,[initialValue])
参数
callback执行数组中每个值的函数,包含四个参数
previousValue- 上一次调用回调返回的值,或者是提供的初始值(initialValue)
currentValue- 数组中当前被处理的元素
index- 当前元素在数组中的索引
array- 调用
reduce的数组
initialValue作为第一次调用 callback 的第一个参数。
回调函数第一次执行时,previousValue 和 currentValue 可以是一个值,如果 initialValue 在调用 reduce 时被提供,那么第一个 previousValue 等于 initialValue ,并且currentValue 等于数组中的第一个值;
如果initialValue 未被提供,那么previousValue 等于数组中的第一个值,currentValue等于数组中的第二个值。
[1,2,3,4].reduce(function(prev, cur, index, array){ console.log(prev+'='+cur); return prev+ cur; });
结果:
1=2
3=3
6=4
10
[1,2,3,4].reduce(function(prev, cur, index, array){ console.log(prev+'='+cur); return prev+ cur; }, 10);
结果:
10=1
11=2
13=3
16=4
20
4、Array.prototype.every()
every() 方法测试数组的所有元素是否都通过了指定函数的测试。不会改变原数组。
语法:
arr.every(callback[, thisArg])
参数
callback- 用来测试每个元素的函数。
thisArg- 执行
callback时使用的this值。
var arr = [1,2,3,6]; arr.every(function(item, index, array){ return item <5; }); // false
5、Array.prototype.indexOf()
indexOf()方法返回给定元素能找在数组中找到的第一个索引值,否则返回-1。
语法
arr.indexOf(searchElement[, fromIndex = 0])
参数
searchElement- 要查找的元素
fromIndex- 开始查找的位置。如果该索引值大于或等于数组长度,意味着不会在数组里查找,返回-1。如果参数中提供的索引值是一个负值,则将其作为数组末尾的一个抵消,即-1表示从最后一个元素开始查找,-2表示从倒数第二个元素开始查找 ,以此类推。 注意:如果参数中提供的索引值是一个负值,仍然从前向后查询数组。如果抵消后的索引值仍小于0,则整个数组都将会被查询。其默认值为0.
浙公网安备 33010602011771号