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

 更新时间:2019年08月28日 08:21:31   作者:寻易之客  
在本篇文章里小编给大家整理的是关于js中的各种遍历(forEach, map, for, for...in, for...of)相关知识点用法总结,需要的朋友们参考下。

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;
 }
}

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

相关文章

  • JS前端文件读取FileReader操作方法总结

    JS前端文件读取FileReader操作方法总结

    FileReader 包含了一套完整的事件模型,用于捕获读取文件时的状态,下面这篇文章主要给大家介绍了关于JS前端文件读取FileReader操作方法的相关资料,需要的朋友可以参考下
    2024-08-08
  • Weex开发之地图篇的具体使用

    Weex开发之地图篇的具体使用

    这篇文章主要介绍了Weex开发之地图篇的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • 20道JS原理题助你面试一臂之力(必看)

    20道JS原理题助你面试一臂之力(必看)

    本文针对目前常见的面试题,仅提供了相应的核心原理及思路,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-07-07
  • 前端中的JS使用调试技巧

    前端中的JS使用调试技巧

    掌握各种js调试技巧,在前端开发中降低开发成本,起到事半功倍的效果。譬如,快速定位问题、降低故障概率、帮助分析逻辑错误等等。这篇文章主要介绍了前端中的JS使用调试技巧,需要的朋友可以参考下
    2022-12-12
  • es6 javascript对象Object.values() , Object.entries()示例详解

    es6 javascript对象Object.values() , Object.entr

    这篇文章主要介绍了es6 javascript对象Object.values() , Object.entries()的示例代码,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • 微信小程序 image组件遇到的问题

    微信小程序 image组件遇到的问题

    这篇文章主要介绍了微信小程序 image组件遇到的问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-05-05
  • JavaScript对象参数的引用传递

    JavaScript对象参数的引用传递

    这篇文章主要为大家介绍了JavaScript对象参数的引用传递的相关资料,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • 手把手教你实现一个JavaScript时间轴组件

    手把手教你实现一个JavaScript时间轴组件

    本文主要是给大家带来一个时间轴的组件开发教程,其主要功能就是可以拖动时间轴来定位当前时间,可以通过鼠标滚轮来修改当前时间分辨率,需要的可以参考一下
    2022-10-10
  • 微信小程序获取用户信息并保存登录状态详解

    微信小程序获取用户信息并保存登录状态详解

    这篇文章主要介绍了微信小程序获取用户信息并保存登录状态,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • javascript 冒泡排序 正序和倒序实现代码

    javascript 冒泡排序 正序和倒序实现代码

    javascript 冒泡排序 正序和倒序实现代码,需要的朋友可以参考下。
    2010-12-12

最新评论