js遍历详解(forEach, map, for, for...in, for...of)


Posted in Javascript onAugust 28, 2019

forEach

es5出来的方法,这是我在react中用的最多的遍历方法之一,用法如下:

models.forEach(model => app.model(model));

dva里面经常这么写。

写法很简单,经常用于通过这个数组内的数据创造新的结构,但是forEach的问题在于它不能跳出循环。

map

也是用的最多的方法之一,用法如下

{data.map(d => (
     <div className="balance-row">
      <div className="balance-col currency">{d.currency.toUpperCase()}</div>
      <div className="balance-col balance">
       <div>
        <FormattedNumber value={d.balance} />
       </div>
       <div className="light-text lock">
        <i className="icon anticon icon-lock" /><FormattedNumber value={d.locked} />
       </div>
      </div>
     </div>
    ))}

react 里面经常这么写。

const value = [1, 22, 4, 5].map(d => d + 1);
value; // [2, 23, 5, 6]

用于改变一个数组内容,相当于改变了原数组

for ... in

for (let prop in obj) {
 if (obj.hasOwnProperty(prop)) {
  // 继续操作prop和obj
 }
}

for ... in也可以用于遍历数组,但是不推荐

for ... of

ES6中加了一个新的遍历方式,主要是用来弥补forEach 和 for...in的短板,它还可以遍历字符串、map对象、set对象、generator对象。

注意:它只能遍历带有iterable属性的对象,所以不能遍历对象,除非刻意给object加上一个iterable属性。
这个老厉害了!

Map

let iterable = new Map([["a", 1], ["b", 2], ["c", 3]]);
 
for (let [key, value] of iterable) {
 console.log(value);
}
// 1
// 2
// 3
 
for (let key of iterable) {
 console.log(key);
}
// [a, 1]
// [b, 2]
// [c, 3]

Set

let iterable = new Set([1, 1, 2, 2, 3, 3]);
 
for (let value of iterable) {
 console.log(value);
}
// 1
// 2
// 3

Generator

function * fibonacci() { // a generator function
 let [prev, curr] = [0, 1];
 while (true) {
  [prev, curr] = [curr, prev + curr];
  yield curr;
 }
}
 
for (let n of fibonacci()) {
 console.log(n);
 // truncate the sequence at 1000
 if (n >= 1000) {
  break;
 }
}

以上就是本次介绍的全部知识点内容,感谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JavaScript 获取用户客户端操作系统版本
Aug 25 Javascript
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
Mar 31 Javascript
分享10篇优秀的jQuery幻灯片制作教程及应用案例
Apr 16 Javascript
cookie中的path与domain属性详解
Dec 18 Javascript
iframe窗口高度自适应的实现方法
Jan 08 Javascript
JavaScript用Number方法实现string转int
May 13 Javascript
JS实现点击上移下移LI行数据的方法
Aug 05 Javascript
JavaScript必知必会(七)js对象继承
Jun 08 Javascript
利用angular.copy取消变量的双向绑定与解析
Nov 25 Javascript
微信小程序如何获取群聊的openGid以及名称详解
Jul 17 Javascript
koa2 从入门到精通(小结)
Jul 23 Javascript
JSX在render函数中的应用详解
Sep 04 Javascript
Angular6使用forRoot() 注册单一实例服务问题
Aug 27 #Javascript
jQuery - AJAX load() 实例用法详解
Aug 27 #jQuery
JS实现提示框跟随鼠标移动
Aug 27 #Javascript
js对象数组和对象的使用实例详解
Aug 27 #Javascript
vue递归组件实战之简单树形控件实例代码
Aug 27 #Javascript
vue项目中引入Sass实例方法
Aug 27 #Javascript
package.json配置文件构成详解
Aug 27 #Javascript
You might like
hadoop常见错误以及处理方法详解
2013/06/19 PHP
使用PHP获取汉字的拼音(全部与首字母)
2013/06/27 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
2016/03/03 PHP
PHP实现的网站目录扫描索引工具
2016/09/08 PHP
php中file_get_contents()函数用法实例
2019/02/21 PHP
Laravel5.1 框架Middleware中间件基本用法实例分析
2020/01/04 PHP
用JavaScript实现UrlEncode和UrlDecode的脚本代码
2008/07/23 Javascript
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
2012/02/03 Javascript
JavaScript高级程序设计(第3版)学习笔记8 js函数(中)
2012/10/11 Javascript
实例讲解JQuery中this和$(this)区别
2014/12/08 Javascript
js实现点击切换TAB标签实例
2015/08/21 Javascript
微信小程序  audio音频播放详解及实例
2016/11/02 Javascript
jQuery Password Validation密码验证
2016/12/30 Javascript
详细AngularJs4的图片剪裁组件的实例
2017/07/12 Javascript
JS获取字符对应的ASCII码实例
2017/09/10 Javascript
echarts实现折线图的拖拽效果
2019/12/19 Javascript
javascript实现前端成语点击验证
2020/06/24 Javascript
python中引用与复制用法实例分析
2015/06/04 Python
python处理html转义字符的方法详解
2016/07/01 Python
OpenCV-Python实现轮廓检测实例分析
2018/01/05 Python
Python中GeoJson和bokeh-1的使用讲解
2019/01/03 Python
Python Threading 线程/互斥锁/死锁/GIL锁
2019/07/21 Python
详解Python的爬虫框架 Scrapy
2020/08/03 Python
pandas apply使用多列计算生成新的列实现示例
2021/02/24 Python
写clone()方法时,通常都有一行代码,是什么?
2012/10/31 面试题
大学生个人总结的自我评价
2013/10/05 职场文书
留学自荐信
2013/10/10 职场文书
交通志愿者活动总结
2014/06/27 职场文书
理财计划书
2014/08/14 职场文书
我爱幼儿园演讲稿
2014/09/11 职场文书
房屋租赁委托书范本
2014/10/04 职场文书
2015年党员公开承诺事项
2015/04/27 职场文书
2015年暑期实践报告范文
2015/07/13 职场文书
车辆挂靠协议书
2016/03/23 职场文书
MySQL笔记 —SQL运算符
2022/01/18 MySQL
SQL Server使用导出向导功能
2022/04/08 SQL Server