forEach()
//1.forEach() 遍历数组 向传入的回调函数传入元素值 和 索引 没有返回值
let arr = [10,20,30,40];
//forEach传入一个回调函数 forEach会向回调函数返回两个实参 第一个是值 第二个是索引
arr.forEach(function(item,index){
console.log(item,index);
});
//同样 回调函数也可以写成箭头函数
arr.forEach((item,index) => console.log(item,index));
//利用forEach 求数组中的最大值
let max = -Infinity;//Infinit无穷 -Infinity 就是负无穷 就是无穷小
let res = arr.forEach((item,index) => {
if(item > max){
max = item;
}
return 777;//不管写不写这个都没有返回值
});
console.log(max);
console.log(res);//结果为 undefined 说明forEach没有返回值
map()
//2.map()遍历数组 向传入的回调函数传入元素值 和 索引 有返回值返回成一个数组
let res = arr.map(function(item,index){
console.log(item,index);
return item*item;//返回的return后面的内容 并且push到你要赋值的变量里 所有最后形成一个数组
});
console.log(res);
filter()
//3. filter() 过滤器 向传入的回调函数传入元素值 和 索引
//他会创建并最为返回值 返回一个新的数组,新的数组中的元素是通过检查后符合条件的元素形成的
let arr1 = [10,23,56,89,50,10,30];
let arrnew = arr1.filter(function(item,index){
//只会返回表达式成立的 对应的所代表的元素 是符合条件的整个元素
return item % 2 == 0; //只有在当前的返回值为true时 才会将返回值加到创建的新数组中
});
console.log(arrnew);