ES6数组新增的一些循环
arr.forEach()
let arr=['apple','banana','orange','tomato'];
arr.forEach(function(val,index,arr){
console.log(this,val,index,);
},123);
// 123为改变this的值
let arr1=['apple','banana','orange','tomato'];
arr1.forEach((val,index,arr)=>{
console.log(this,val,index,arr)
},true);
// 在箭头函数中this指向当前定义函数所在的对象
arr.map()
map必须有返回值,否则等同于forEach
let arr=[
{title:'aaaaa',read:100,hot:true},
{title:'bbbbb',read:100,hot:true},
{title:'ccccc',read:100,hot:true},
{title:'ddddd',read:100,hot:true}
]
/* arr.map((val,index,arr)=>{
console.log(val,index,arr);
}) */
let newArr=arr.map((val,index,arr)=>{
console.log(val,index,arr);
return "返回值"; //map必须有返回值,否则等同于forEach
})
console.log(...newArr)
filter
返回过滤后的数据
var arr = [
{title:'侯耀华有多“恨”郭德纲?听听这段', read:50, hot:true},
{title:'赵家班爆笑小品《镶牙》:宋小宝演', read:100, hot:true},
{title:'最后10秒的精彩,猎豹队小哥一人', read:20, hot:false},
{title:'赵本山自爆当年李双江等来找他,他', read:5, hot:true}
]
// 过滤当前标签为热点的新闻
let newArr=arr.filter((val,index)=>{
return val.hot==true; //返回指定条件的记录,其余被过滤掉
})
console.log(newArr);
some
返回查找匹配结果(true/false)
let arr=['apple','banana','orange'];
let b=arr.some((val,index,arr)=>{
return val=='banana';
})
// console.log(b); //some 返回布尔值
console.log(b?"banana":"没有香蕉");
let arr1=['apple','banana','orange'];
function findInArray(arr,item){
return arr1.some((val,index,arr)=>{ //true
return val==item;
})
}
console.log(findInArray(arr1,"orange"));
every
每一个条件都成立时才返回true
let arr=[1,3,5,7,9];
let b=arr.every((val,index,arr)=>{
return val%2==1;
});
console.log(b)
reduce和reduceRight
let arr=[1,2,3,4,5,6,7,8,9,10];
let result=arr.reduce((prev,cur,index,arr)=>{ //从左往右计算
return prev+cur;
})
console.log(result)
let arr1=[9,10];
let result=arr1.reduceRight((prev,cur,index,arr)=>{ //从右到左计算
return prev-cur;
})
console.log(result)
for…of…
let arr=['apple','banana','orange'];
console.log("遍历值");
for(let val of arr){
console.log(val); //遍历值
}
console.log("------------------------------------------------------");
console.log("遍历索引");
for(let index of arr.keys()){
console.log(index); //arr.keys遍历索引
}
console.log("------------------------------------------------------");
console.log("遍历索引和值");
for(let item of arr.entries()){
console.log(item); //遍历索引和值 arr.entries为数组新增的一个方法,意为实体
}
console.log("------------------------------------------------------");
console.log("遍历索引和值");
for(let [index,val] of arr.entries()){
console.log(index,val); //遍历索引和值
}
console.log("------------------------------------------------------");