1. arr.forEach(回调函数(当前元素,当前元素下标,当前数组) ) 用于遍历数组
var arr=[100,200,300,400,500];
// 1. arr.forEach(回调函数(当前元素,当前元素下标,当前数组) ) 用于遍历数组
arr.forEach(function(ele,index,arr){
if (ele>300) {
return;
}//打印到300结束
console.log(ele,index,arr);
})
练习:自己封装一个功能类似foreach的遍历器
Array.prototype.myEach=function(callback){
for(var i=0;i<this.length;i++){
callback(this[i],i,this)
}
}
arr.myEach(function(ele,index,arr){
console.log(ele,index,arr);
})
2. some():返回布尔值,只要一个条件满足就返回true
var arr=[100,200,300,400,500];
// 2. some():返回布尔值,只要一个条件满足就返回true
// 遇真短路
var a=arr.some(function(ele,index,arr){
console.log(ele,index,arr);
return ele>300;//返回布尔值 400是第一个满足的条件,返回true
// 满足条件返回true之后 就不再打印了
})
console.log(a);
3. every() 只要有一个条件不满足就返回false
var arr=[100,200,300,400,500];
var b=arr.every(function(ele,index,arr){
console.log(ele,index,arr);
return ele<400;
})
console.log(b);//false
练习:判断数组中是否含有非数
var arr1=[100,200,"a",300];
var result=arr1.every(function(ele,index,arr){
return (typeof ele=="number");
})
console.log(result);//false 有非数字类型
4. reduce(); 累加prep=上一次调用函数的返回值 initValue是初始值
// arr.reduce(function(prep,ele,index,arr) { },initValue)
arr=[100,200,300,400]
var totle=arr.reduce(function(prep,ele,index,arr) {
console.log(prep);
return prep+=ele;
},0)
console.log(totle);//1000
练习:计算购物车总价
var product = [
{
type: "衣服",
num: 3,
price: 20
},
{
type: "裤子",
num: 4,
price: 10
},
{
type: "帽子",
num: 1,
price: 10
},
];
var totle=product.reduce(function(prep,ele,index,product) {
prep += (ele.num)*(ele.price);
return prep;
},0)
console.log(totle);//110