跟大家分享一下,前端不算es6,就有八种循环,你用过几种呢


let arr = [{title:'aaaa',read:1000,hot:true},
           {title:'bbbb',read:300,hot:false},
           {title:'cccc',read:2000,hot:true},
           {title:'dddd',read:1900,hot:false}
    ];
 
 
// 第一种for
for(let i=0; i<arr.length;i++){
    console.log(arr[i]);
}
 
 
// 第二种forEach
// forEach就是代替普通的for
arr.forEach(function(item,index,arr){// item:循环结果 index:下标 arr:原数组
    console.log(item);
},'this指向,如果使用的是箭头函数无法改变this指向');
 
 
// 第三种map
// 它可以重新整理数据结构,可以返回一个新的数组
let newarr = arr.map((item,index,arr)=>{// item:循环结果 index:下标 arr:原数组
    // console.log(item,index,arr);
    let json = {};
    json.t = `随便加点${item.title}----`;
    json.r = `随便加点${item.read}----`;
    json.h = `随便加点${item.hot}----`;
    return json;
})
console.log(newarr)
 
 
// 第四种filter
// 过滤,过滤一些不合格或者不想要的元素,如果返回结果为true,就留下来
let newarr = arr.filter((item,index,arr)=>{// item:循环结果 index:下标 arr:原数组
    return item.hot == true;//判断即可
})
console.log(newarr)
 
 
// 第五种some
// 类似查找,数组里面某一个元素符合条件,返回true
let newarr = arr.some((item,index,arr)=>{
    return item.title == 'dddd';
})
console.log(newarr)
 
 
// 第六种every
// 类似查找,数组里面所有的元素都要符合条件,才返回true
arr2 = [1,3,5,7,9]
let newarr = arr2.every((item,index,arr)=>{
    return item%2 == 1;//判断我的数组里面是否有偶数
})
console.log(newarr)
 
 
// 第七种reduce
// 求数组的和、阶乘,从左往右计算
arr3 = [1,2,3,4,5,6,7,8,9,10];
arr4 = [2,2,3];
let newarr = arr3.reduce((prev,cur,index,arr)=>{//prev:前一个 cur:当前 index:下标 arr:原数组
    return prev+cur;
    return Math.pow(prev,cur);//调用arr4的数组
    return prev**cur;//或者使用幕运算符
})
console.log(newarr)
 
 
// 第八种reduceRight
// 求数组的和、阶乘,跟reduce正好相反,从右往左计算
arr3 = [2,2,3];
let newarr = arr3.reduceRight((prev,cur,index,arr)=>{//prev:前一个 cur:当前 index:下标 arr:原数组
    // return prev+cur;
    return Math.pow(prev,cur);
})
console.log(newarr)
 
ps:怎么样是不是又涨知识了,大家不要学我let声名这么多次newarr,我是注释这写的,大家要用的话直接,用哪个拿那个就OK。
这里给大家留一个坑,接下来给大家分享es6,的循环。
--------------------- 
作者:王海虎 
来源:CSDN 
原文:https://blog.csdn.net/xiaohu12685/article/details/80623622 
版权声明:本文为博主原创文章,转载请附上博文链接!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值