数组
1,filter方法:
function isBigEnough(value) {
return value >= 10;//返回的是true,则该项通过筛选
}
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);//筛选出来的是一个新的数组
被调用时传入三个参数:
元素的值
元素的索引
被遍历的数组
2,forEach方法:
forEach() 方法对数组的每个元素执行一次提供的函数。
let a = ['a', 'b', 'c'];
a.forEach(function(element) {
console.log(element);
});
3,map方法:
map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
let numbers12 = [1, 5, 10, 15];
let doubles12= numbers12.map((x,index) => {
return '我是你爸爸'+index+' '+x;
});
//返回undefined
doubles12//["我是你爸爸0 1", "我是你爸爸1 5", "我是你爸爸2 10", "我是你爸爸3 15"]
4,reduce方法:
reduce() 方法对累加器和数组中的每个元素 (从左到右)应用一个函数,将其减少为单个值。
var arr=[1,2,3,4]
var total = arr.reduce(function(sum, value) {
return sum + value;
}, 'a');
arr//[1, 2, 3, 4]
total//"a1234"
array.reduce(function(accumulator, currentValue, currentIndex, array), initialValue)
参数
callback
执行数组中每个值的函数,包含四个参数
accumulator
上一次调用回调返回的值,或者是提供的初始值(initialValue)
currentValue
数组中正在处理的元素
currentIndex
数据中正在处理的元素索引,如果提供了 initialValue ,从0开始;否则从1开始
array
调用 reduce 的数组
initialValue
可选项,其值用于第一次调用 callback 的第一个参数。如果没有设置初始值,则将数组中的第一个元素作为初始值。空数组调用reduce时没有设置初始值将会报错。
var total = [].reduce(function(sum, value) {
return sum + value;
});
//TypeError: Reduce of empty array with no initial value
var total = [].reduce(function(sum, value) {
return sum + value;
},1);
total//1
//说好的累加,加号的两边都没有参数
网友评论