目录

一.forEach循环

二.some循环

三.every循环

四.reduce循环


一.forEach循环

他不能够终止循环----所以forEach的性能比较差

意思是就算查找到了我们需要的数组元素,forEach也不会停下来的,直到把这个数组所有数组循环一遍才能终止本次循环:

eg:

const arr = [1,3,5,7,8,10,12,14,16]
arr.forEach((item,index)=> {console.log('循环了几次?');if(item === 8){console.log('到这里我已经查询到了我想要查询的数组元素')}
})

我们发现就算forEach找到了当前期望数组元素,循环还是会继续进行下去

那么我们可不可以手动停下来呢?

const arr = [1,3,5,7,8,10,12,14,16]
arr.forEach((item,index)=> {console.log('循环了几次?');if(item === 8){console.log('到这里我已经查询到了我想要查询的数组元素')return}
})

并没有作用


二.some循环

some不同于forEach循环的是:some可以在找到对应项之后通过return true这个固定语法来终止掉some循环:

const arr = [1,3,5,7,8,10,12,14,16]
arr.some((item,index)=> {console.log('循环了几次?');if(item === 8){console.log('到这里我已经查询到了我想要查询的数组元素')return true}
})


三.every循环

主要用于循环判断

const arr = [{id:1,status:true},{id:2,status:true},{id:3,status:true},{id:4,status:false},{id:5,status:true}
]
const res = arr.every((item => item.status))
console.log(res)const restwo = arr.every(function(item){return item.status == true
})
console.log(restwo)

const arr = [{id:1,status:true},{id:2,status:true},{id:3,status:true},{id:4,status:true},{id:5,status:true}
]
const res = arr.every((item => item.status))
console.log(res)const restwo = arr.every(function(item){return item.status == true
})
console.log(restwo)


四.reduce循环

reduce循环主要用于循环累加

语法:数组.reduce(累加的结果,当前循环项)=>{return 计算过程},初始值)

假如我们有这样一个要求:

张三开的小卖铺马上就要关门了,还有剩下了一些东西没有卖出去,需要统计一下

如下:

1 铅笔盒 有剩余 单价2000元 剩余个数100个
2 钢笔 没有剩余 单价1元 剩余0个
3 JavaScript手册 有剩余 单价80元 剩余2本

我们需要怎么做?

没错--首先定义一个数组:

const arr = [{id:1,name:"铅笔盒",status:true,price:2000,count:100},{id:2,name:"钢笔",status:false,price:1,count:0},{id:3,name:"javascrip手册",status:true,price:80,count:2}
]

接下来就该我们的reduce循环上场了:

const arr = [{id:1,name:"铅笔盒",status:true,price:2000,count:100},{id:2,name:"钢笔",status:false,price:1,count:0},{id:3,name:"javascrip手册",status:true,price:80,count:2}
]
//思路:我们先排除卖完的,然后把还有剩余的商品进行计算累加
const results =  arr.filter(item => item.status).reduce((res,item)=> {return res += item.price * item.count
},0)
console.log(results)

浅谈四种JS数组循环相关推荐

  1. 浅谈四种常见的agv导航方式及各自的优缺点

    了解过AGV小车的朋友都知道,agv小车也叫作自动搬运车.搬运机器人等,agv小车主要是通过电磁.光学或其它自动导引装置,能够实现自主规划线路自动行驶的一个过程,是一种具有安全性高以及拥有各种搭载功能 ...

  2. php的循环有哪几种,PHP数组循环遍历的几种方式

    PHP数组循环遍历 1.for循环 //语法 for (init counter; test counter; increment counter) { code to be executed; } ...

  3. [原]浅谈几种服务器端模型——反应堆模式(epoll 简介) - _Boz - 博客园

    [原]浅谈几种服务器端模型--反应堆模式(epoll 简介) - _Boz - 博客园 [原]浅谈几种服务器端模型--反应堆模式(epoll 简介) 引言:上一篇说到了线程池方式来处理服务器端的并发, ...

  4. java的byte php_java_浅谈java的byte数组的不同写法,(由于篇幅原因阐述的不够详 - phpStudy...

    浅谈java的byte数组的不同写法 (由于篇幅原因阐述的不够详细科学,不喜勿喷). 经常看到java中对byte数组的不同定义,粗略整理的一下: 一个字节(byte)=8位(bit),"b ...

  5. php编码 js解码,浅谈php和js中json的编码和解码

    php中 1)编码 $jsonstr = json_encode($array) 2)解码 $arr = json_decode($jsonstr) echo json_encode("中文 ...

  6. js 编码 php 解码,浅谈php和js中json的编码和解码

    php中 1)编码 $jsonStr = json_encode($array) 2)解码 $arr = json_decode($jsonStr) echo json_encode("中文 ...

  7. 浅谈几种区块链网络攻击以及防御方案之其它网络攻击

    旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/16/network_attack_of_blockchain_other_attack/ 写在前面的话 自比特 ...

  8. 浅谈几种区块链网络攻击以及防御方案之拒绝服务攻击

    旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/14/network_attack_of_blockchain_ddos_attack/ 写在前面的话 自比特币 ...

  9. 浅谈几种区块链网络攻击以及防御方案之女巫攻击

    旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/13/network_attack_of_blockchain_sybil_attack/ 写在前面的话 自比特 ...

最新文章

  1. Exception in thread main java.lang.IncompatibleClassChangeError: net/sf/cglib/core/DebuggingClassW
  2. cmake编译时支持gdb调试
  3. Oracle数据库定时备份脚本
  4. python的for语句打印金字塔图形_python实现输入任意一个大写字母生成金字塔的示例...
  5. OpenXLSX 中文字段读取问题
  6. LeetCode 1971. Find if Path Exists in Graph(图的遍历)
  7. 第一次迭代 一次会议
  8. 金蝶BOS开发之--非空验证、时间、电话号码验证
  9. Sorting a Three-Valued Sequence
  10. CMU 15-213 Introduction to Computer Systems学习笔记(23) Thread-Level Parallelism
  11. 甘肃刘家峡赤壁“结”出多彩冰瀑
  12. 《旷野游荡的精灵》 一个会写诗的程序员 2019.3
  13. 浏览器刷新页面导致vuex数据丢失问题如何解决?
  14. 15b万用表怎么测电容_怎么判断启动电容好坏_启动电容怎么测量好坏_数字万用表测电容好坏...
  15. android 手指滑动顺时针逆时针判断
  16. Excel换行显示的几种方法,你知道吗?
  17. 树莓派外接显示器黑屏_解决树莓派连接显示屏No Signal的问题
  18. ads1278_ADS1278
  19. oracle 错误06512,处理ORA-06512错误
  20. html hr线条粗细,html中hr怎么设置粗细

热门文章

  1. 哔哩哔哩:JS 异步笔试题
  2. JDK8的HashMap扩容原理
  3. 从Rust到远方:WebAssembly 星系
  4. 追女生说话技巧,这些技巧让你牢牢锁住女生的心,总想找你聊
  5. php .asmx,php实现通过soap调用.Net的WebService asmx文件
  6. 300-700题红题第二题
  7. Android课程设计大作业-音乐播放器
  8. 电脑诊断出策略服务器未运行,win10系统使用诊断策略服务提示未运行的具体技巧...
  9. sql笔记1:sql执行优先级和casewhen用法、sql执行顺序
  10. pushd 命令,了解一下! 一个比 cd 更高效的目录切换命令