总结数组迭代笔记
原创
©著作权归作者所有:来自51CTO博客作者陈小知的原创作品,请联系作者获取转载授权,否则将追究法律责任
先造一个数组:
let a = [1,22,33,4,5,63,7,33];
1. forEach() 迭代遍历后跟三个参数:值,索引,数组本身;
a.forEach(aa);
function aa(val,index,array){
console.log(index+"*"+val); //0*1 1*22...
}
2. map()通过对每个数组元素执行函数来创建新数组,迭代函数后跟三个参数:值,索引,数组本身,当仅需value时,index和array可以省略
let b = a.map(bb);
function bb(val){
return val+1;
}
b.forEach(cc);
function cc(val,index,array){
console.log(index+"--"+val); // 0--2 1--23...
}
3.filter()方法创建一个包含通过测试的数组元素的新数组,迭代函数后跟三个参数:值,索引,数组本身,当仅需value时,index和array可以省略
let c = a.filter(dd);
function dd(val){
return val > 20;
}
c.forEach(ii);
function ii(val,index,array){
console.log(index+":"+val); // 0:22 1:33....
}
4. reduce()将数组值合并为一个,减少数组数量,用于累计,累乘等场合,接受4个值:总数,值,index,array,index和array可以省略,不会改变原数组;
var sum = a.reduce(ee);
function ee(total, value) {
return total * value;
}
console.log(sum); //211309560
5. every()检查全部值是否通过测试,返回布尔值,都满足条件为true,迭代函数后跟三个参数:值,索引,数组本身,当仅需value时,index和array可以省略
var allOver18 = a.every(ff);
function ff(value) {
return value > 18;
}
console.log(allOver18); // false
6.some() 方法检查某些数组值是否通过了测试,返回布尔值,当仅需value时,index和array可以省略。
var someOver18 = a.some(gg);
function gg(value) {
return value > 18;
}
console.log(someOver18);// true
7.indexOf() 方法在数组中搜索元素值并返回其位置-索引值,参数:indexOf(item, start开始位置);lastIndexOf()从数组结尾开始搜索并返回位置。
let indexs = a.indexOf(33);
console.log(indexs); //2
8.find() 方法返回通过测试函数的第一个数组值,迭代函数后跟三个参数:值,索引,数组本身,当仅需value时,index和array可以省略;findIndex() 方法返回通过测试函数的第一个数组元素的索引。
let ab = a.find(hh);
function hh(val){
return val > 33; //63
}