javascript中的循环和遍历
js提供了许多循环遍历数组和对象的方法和API。下面列出一些比较常见的方法。
for 循环
js中最常见的莫过于for
来进行遍历了。在循环体中可以通过break
和 continue
来对循环进行一定的处理。
break
: 直接跳出循环。(如果存在嵌套循环,则只是跳出当前循环这一层)
continue
: 结束当前循环,进入下一次循环。
const times = 1000;
for (let i = 0; i < times; i++) {// todo
}
while 循环
js中while
循环也是用的比较多。
for
循环更多的用于循环次数确定的循环。
while
循环更多的用于循环次数不定的循环。
let condition = true;
while (condition) {// todocondition = false;
}
forEach
array.forEach(function(value, index, array) {
// value 为当前值
// index 为当前值的下标
// array 为当前数组
})
- 对数组的每一个元素执行一次提供的函数
- 不能使用return、break来中断循环
- 如果使用了 return 则之后的语句不会执行进入下一个循环 <=> continue
- break使用直接会报错
- 不改变原数组,无返回值
for - in
- 循环遍历的值都是数据结构的键的值
- 使用for-in循环,返回的是所有能够通过对象访问的、可枚举的属性,其中既包括存在于实例中的属性,又包括存在于原型中的属性
- for-in循环出的属性名顺序是不可预测的,返回的先后次序会因浏览器而异
- for in也可以循环数组也可以遍历对象
let obj = {a: '1', b: '2', c: '3', d: '4'}
for (let o in obj) {console.log(o) //遍历是对象的属性名称 a,b,c,dconsole.log(obj[o]) //属性对应的值 1,2,3,4
}
for - of
不同于 for in
遍历的是 key / value 中的key, for of
遍历的是 key / value 中的value。
**限制条件:**一个数据结构只有部署了 Symbol.iterator 属性, 才具有 iterator接口,才可以使用 for of循环。
常见的部署了 Symbol.iteratoer属性的数据结构:
Array
Map
Set
String
arguments对象
Nodelist 对象, 即获取的dom列表集合
let arr = ['a', 'b', 'c']
for (let o of arr) {console.log(o) //a, b, c
}
其它
数组自身也提供了许多操作数组的API,例如:filter
, map
, reduce
等。
这里列出了本人常用的一些数组api,仅供参考。
js数组常用api
javascript中的循环和遍历相关推荐
- javascript中for循环和setTimeout同时使用,出现的问题
javascript中for循环和setTimeout同时使用,出现的问题 for循环代码 <!DOCTYPE html> <html lang="en"> ...
- JavaScript中的属性:如何遍历属性
JavaScript中的属性:如何遍历属性 在JavaScript中,遍历一个对象的属性往往没有在其他语言中遍历一个哈希(有些语言称为字典)的键那么简单.这主要有两个方面的原因:一个是,JavaScr ...
- JavaScript中的循环语句-while循环
-JavaScript中有三种循环语句,分别为while循环,do-while循环和for循环. 现在来聊一聊while循环. 首先讲一讲 if 语句和while 循环的格式是非常相似的,但是它们都拥 ...
- Javascript中for循环
在ECMAScript5(简称 ES5)中,有三种 for 循环,分别是: 简单for循环 for-in forEach 在2015年6月份发布的ECMAScript6(简称 ES6)中,新增了一种循 ...
- 了解JavaScript中的循环缺点和迭代协议
目录 介绍 背景 不同的循环构成弊端 For-loop Array.forEach For-in loop For-of loop 迭代协议 迭代协议的类型 什么是迭代器协议? 什么是可迭代协议? 迭 ...
- [转] JavaScript中的属性:如何遍历属性
在JavaScript中,遍历一个对象的属性往往没有在其他语言中遍历一个哈希(有些语言称为字典)的键那么简单.这主要有两个方面的原因:一个是,JavaScript中的对象通常都处在某个原型链中,它会从 ...
- Javascript中的循环变量声明,到底应该放在哪儿?
不放走任何一个细节.相信很多Javascript开发者都在声明循环变量时犹 豫过var i到底应该放在哪里:放在不同的位置会对程序的运行产生怎样的影响?哪一种方式符合Javascript的语言规范?哪 ...
- Javascript中for循环别名
无意间看到这个列子,想起来了Javascript中的给循环起别名来控制循环终止 贴出来分享一下: test:for (var i = 0; i < 10; i++) { switch (i) { ...
- JavaScript中Object对象深度遍历
Object对象深度遍历 支持Object和Array混合型对象遍历.其中用到的对象类型判断方法,详见<JavaScript中Object对象类型判断> // 递归实现 // obj 为父 ...
最新文章
- Sql注入和Html注入
- R语言ggplot2可视化绘制累积计数图(累加图,cumulative counts)
- IBM发布人脸识别最强工具,多样性数据集,100万张人脸图像!
- 关于 【通过代理访问】 的研究,【突破 IP ,“无限制”投票】
- centos7开启tcp6_Centos7下配置IPV6
- OSI七层协议与TCP连接
- 小规模零申报完整报税流程
- 应对 勒索病毒 补丁、免疫工具、关闭445端口
- python 通配符用法,python - 通配符
- 解决virtualbox虚拟机unbuntu20.04无法识别u盘、sd卡
- 常用颜色的RGB值及中英文名称对照表
- 从 Server Timing Header 看服务器是如何处理请求的
- 「首席架构师精选」精选绘图软件
- Node: Puppeteer + 图像识别 实现百度指数爬虫
- MT6737 Android N 平台 Audio系统学习----录音到播放录音流程分析
- 【ELM】动态自适应可变加权极限学习机ELM预测(Matlab代码实现)
- 1.2线性代数之行列式,余子式及代数余子式
- 秀日记:这个升学比例吓坏大家了
- 26岁工学女博士李晟曼已获聘湖南大学副教授
- 国外媒体评出2010版杀毒软件排名