关于前端:ES6数组循环

40次阅读

共计 1695 个字符,预计需要花费 5 分钟才能阅读完成。

ES6 中新增的数组循环办法

forEach | map | filter | some() | every() | reduce() | reduceRight() | for…of…

forEach

arr.forEach(function(val,index,arr){

console.log(this,val,index,arr)

},123); // 扭转 this 指向,是什么数据类型,this 就是什么

须要三个参数

第一个参数:循环进去的值 val

第二个参数:循环进去的值的索引 index

第三个参数:数组自身 arr

map

let arr = [

 {title:’aaaa’,read:100,hot:true},

 {title:’bbbb’,read:100,hot:true},

 {title:’cccc’,read:100,hot:true},

 {title:’dddd’,read:100,hot:true}

];

let newArr = arr.map((val,index,arr)=>{

 console.log(val,index,arr);

 return “ 返回值 ”;  //map 必须有返回值,否则等同于 forEach

})

map() 须要有返回值,无返回值就等同行与 forEach

filter

用来过滤一些不合格的元素,如果回调函数返回的是 true,那么天然会被留下来,为 false 的就会被过滤掉。前端培训

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,arr)=>{

return val.hot==true;

})

提取出符合条件的元素

some

查找一个字符串存在不存在, 返回一个布尔值

let arr = [“apple”,”banana”,”orange”];

let b = arr.some((val,index,arr) => {

 return val == “banana”;

})

console.log(b?”banana”:” 没有香蕉 ”)

every

查找数组中的每一项,所有元素都要符合条件,才返回 true

let arr = [1,3,5,7,9];

var b = arr.every((val,index,arr)=>{

return val%2==1;

});

console.log(b) //true   判断数组中每一项是否是奇数

reduce()

从左往右运算→求数组的和、差、积、阶乘

后果返回一个数字

let arr = [1,2,3,4,5,6,7,8,9,10];

let res = arr.reduce((prev,curr,index,arr)=>{

return prev + curr;

})

console.log(res)

第一个参数示意上一项

第二个参数示意以后项

第三个参数示意循环对应的索引

第四个参数示意数组自身

reduceRight

从右往左计算

let arr = [2,3,3];

let res = arr.reduceRight((prev,curr,index,arr)=>{

 return prev – curr;

})

console.log(res)

for…of…

arr.keys() 数组下标

arr.entries() 数组某一项

输入数组中每一项的值

let arr = [“apple”,”banana”,”tomato”];

console.log(“ 遍历值 ”);

for(let val of arr){

console.log(val);  

}

输入数组中每项对应的索引

for(let index of arr.keys()){

console.log(index);  //arr.keys() 遍历索引

}

输入数组中每项的值和索引

for(let item of arr.entries()){

console.log(item);

}

正文完
 0