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 相关文章推荐
如何在标题栏显示框架内页面的标题
Feb 03 Javascript
javascript 带有滚动条的表格,标题固定,带排序功能.
Nov 13 Javascript
javascript preload&amp;lazy load
May 13 Javascript
纯JavaScript实现HTML5 Canvas六种特效滤镜示例
Jun 28 Javascript
详解js数组的完全随机排列算法
Dec 16 Javascript
ECMAScript6 新特性范例大全
Mar 24 Javascript
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
May 26 jQuery
Vue项目中quill-editor带样式编辑器的使用方法
Aug 08 Javascript
JS实现问卷星自动填问卷脚本并在两秒自动提交功能
Jun 17 Javascript
VUE预渲染及遇到的坑
Sep 03 Javascript
Vue cli3 库模式搭建组件库并发布到 npm的流程
Oct 12 Javascript
VuePress 中如何增加用户登录功能
Nov 29 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
php 修改上传文件大小限制实例详解
2016/10/23 PHP
php readfile下载大文件失败的解决方法
2017/05/22 PHP
javascript读取RSS数据
2007/01/20 Javascript
JAVASCRIPT下判断IE与FF的比较简单的方式
2008/10/17 Javascript
jquery 事件对象属性小结
2010/04/27 Javascript
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
2013/01/24 Javascript
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
javascript ajax的5种状态介绍
2014/08/18 Javascript
angularJS结合canvas画图例子
2015/02/09 Javascript
JavaScript生成的动态下雨背景效果实现方法
2015/02/25 Javascript
jquery Validation表单验证使用详解
2020/09/12 Javascript
ANGULARJS中使用JQUERY分页控件
2015/09/16 Javascript
分步解析JavaScript实现tab选项卡自动切换功能
2016/01/25 Javascript
jQuery实现表格元素动态创建功能
2017/01/09 Javascript
jQuery弹出层插件popShow(改进版)用法示例
2017/01/23 Javascript
详解bootstrap用dropdown-menu实现上下文菜单
2017/09/22 Javascript
Nodejs处理异常操作示例
2018/12/25 NodeJs
详解如何给React-Router添加路由页面切换时的过渡动画
2019/04/25 Javascript
JS在Array数组中按指定位置删除或添加元素对象方法示例
2019/11/19 Javascript
JavaScript监听触摸事件代码实例
2019/12/30 Javascript
Javascript生成器(Generator)的介绍与使用
2021/01/31 Javascript
在Python中实现shuffle给列表洗牌
2018/11/08 Python
python实现逐个读取txt字符并修改
2018/12/24 Python
python正则表达式去除两个特殊字符间的内容方法
2018/12/24 Python
基于 Django 的手机管理系统实现过程详解
2019/08/16 Python
python的pyecharts绘制各种图表详细(附代码)
2019/11/11 Python
Python基于traceback模块获取异常信息
2020/07/23 Python
python中函数返回多个结果的实例方法
2020/12/16 Python
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
一站式跨境收款解决方案:Payoneer(派安盈)
2018/09/06 全球购物
Expedia西班牙:预订酒店、机票、旅行和廉价度假套餐
2019/04/10 全球购物
现代绅士日常奢侈品:Todd Snyder
2019/12/13 全球购物
2014党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
暂停营业通知
2015/04/25 职场文书
2016年教师学习教师法心得体会
2016/01/20 职场文书
Mysql数据库手动及定时备份步骤
2021/11/07 MySQL