1.数组方法
迭代遍历方法:forEach(),map(),filter(),some(),every()
1.1.forEach方法
arr.forEach(function(value,index,array){
console.log("每个数组元素当前的值"+value);
console.log("每个数组元素的索引号"+index);
console.log("数组本身"+array);
sum+=value;//求和
});
forEach 性能不好,若forEach开始,中间不能停掉终止,从头循环到尾。
1.2.filter()方法
用于筛选数组,注意直接返回一个新数组
var newarr=arr.filter(function(value,index,array){//可省略
return value>1;//筛选>1的数
});
1.3.some()方法
-
用于查找数组中是否有满足条件的元素
-
它的返回值是布尔值,找到就返回true,找不到返回false
-
如果找到第一个满足条件的元素则 return true终止循环,不再继续查找
var arr=[2,3,'pink','k'];
var newarr=arr.some(function(value,index,arr){ //参数可省略
return value=='pink';
});
console.log(newarr);//true
arr.some(item,index)=>{
if(item=='pink'){
console.log(index)
return true //找到满足条件的元素则 return true固定语法,终止循环
}
}
1.4 every()方法
const arr = [
{id: 1,name: 'zs',stasus: true},
{id: 2,name: 'zs1',stasus: true},
{id: 3,name: 'zs3',stasus: true
}]
//判断数组中,是否全选
const result = arr.every(item => item.stasus)
// const result = arr.every(item => item.stasus == true)
console.log(result); //true
//若任何一项不为true 则返回false
返回值是布尔值
1.5 reduce() 方法
//已勾选item.state为true的name,总价累加起来
// 1.
let amt = 0 //总价
arr.filter(item => item.state).forEach(item => {
amt += item.price * item.count
});
//console.log(amt);
// 2.reduce
// arr.filter(item => item.state).reduce((累加的结果, 当前循环项目) => {}, 初始值);
arr.filter(item => item.state).reduce((amt, item) => {
return amt += item.price * item.count
}, 0); //初始值为0
console.log(amt);