1. 过滤方法filter(不会改变原始数组)
filter能够将数组中不需要的元素去除
接受一个函数作为参数,函数含有3个可选参数,分别是
1.当前元素的值
2.当前元素的索引。
3.需要过滤的数组
遍历时,return false过滤,true则保留
let arr=[1,2,3,"a"]
let arr2=arr.filter(function(a,b,c){
console.log(a,b,c);
// 1 0 [1, 2, 3, 'a']
// 2 1 [1, 2, 3, 'a']
// 3 2 [1, 2, 3, 'a']
// a 3 [1, 2, 3, 'a']
})
let arr2=arr.filter(value=> value>1?1:0)
//[2, 3]
2.计算方法map(不改变原始数组)
map能够对数组中的元素加工 接受一个函数作为参数,函数含有3个可选参数,分别是
1.当前元素的值。
2.当前元素的索引。
3.需要计算的数组
let arr2=arr.map(function(a,b,c){
console.log(a,b,c);
//1 0 [1, 2, 3, 'a']
//2 1 [1, 2, 3, 'a']
//3 2 [1, 2, 3, 'a']
//a 3 [1, 2, 3, 'a']
return 1
})
console.log(arr2); // [1, 1, 1, 1]
遍历时,return 的值作为新数组的元素
3.累加方法 reduce(不改变原始数组)
reduce 把数组中的元素加工成一个值 有4个参数 第一个第二个必须有
1.函数先前返回的值。
2.当前元素的值。
3.当前元素的索引。
4.当前元素所属的数组
let result=arr.reduce(function(a,b,c,d){
console.log(a,b,c,d);
return a+b
})
// 1 2 1 [1, 2, 3, 4]
// 3 3 2 [1, 2, 3, 4]
// 6 4 3 [1, 2, 3, 4]
console.log(result); //10
reduce默认数组第一个值为返回值参数a,第二个值为当前元素参数b
函数的return作为下次遍历的返回值a
可以设置默认值
let result=arr.reduce(function(a,b,c,d){
console.log(a,b,c,d);
return a+b
},5) //设置5作为返回值a,
// 5 1 0 (4) [1, 2, 3, 4]
// 6 2 1 (4) [1, 2, 3, 4]
// 8 3 2 (4) [1, 2, 3, 4]
// 11 4 3 (4) [1, 2, 3, 4]
console.log(result); //15
4检测方法 some every(不改变原数组)
every(function(){})遍历数组,如果函数都返回true,则返回true。
some(function(){})遍历数组,如果函数任一项返回true,则返回true。
some every 检测数组中的元素是否符合条件
函数含有3个可选参数,分别是
1.当前元素的值。
2.当前元素的索引。
3.需要计算的数组
let arr=[1,2,3,4]
let result=arr.some(function(a,b,c){
return a>3
})
let result2=arr.every(function(a,b,c){
return a>3
})
console.log(result,result2); //true false
因为some 返回值中只要有符合条件的就true
every 必须要所有的返回值都符合条件