js中的循环 & 迭代

最常见的便是for循环和while循环,下面主要比较map、foreach;for in、Object.keys()、getOwnPropertyNames()之间的区别。
虽然后面三个方法都可以用来迭代数组和对象,但是我们应该尽量不要使用这些方法来遍历数组。

map和forEach

首先两者参数相同:

  • arr.map(function(val,index,arr), thisVal) ;
  • arr.forEach(function(val,index,arr), thisVal).
    区别在于回调函数作用不一样,map返回处理过的数组,而forEach无返回值。两者均不改变原数组。所以forEach得作用和普通的for循环是一样的。
for in、Object.keys()和getOwnPropertyNames()

首先,三个方法都可以迭代数组,但不推荐。

  • for(key in object)可以遍历对象object的所有可枚举属性值(包括实例属性和原型链属性);
  • Object.keys(object)同样可以遍历对象object的可枚举属性,但不包括原型链上的属性,返回属性数组。
  • object.getOwnPropertyNames()遍历object的所有属性(包括不可枚举的属性,比如function),但同样不包括原型链上的属性,返回遍历的属性数组。
Jquery中的$.map()和 $.each()

Jquery对遍历提供了$.map()喝$.each()方法,和js原生的map和forEach类似,但这两个方法不只是遍历数组,还能遍历对象,$.map()不管遍历数组还是对象,返回值任然是数组。

细节

  • map和forEach中使用break;语句无效,需要使用try catch语句处理。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 Object 对象 教程:https://wangdoc.com/javascript/stdlib/obje...
    智勇双全的小六阅读 2,016评论 0 0
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,196评论 0 13
  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 4,651评论 0 5
  • 感恩亭亭今早嘘寒问暖的问候早餐和脚的情况。 感恩发明小功率电锅的发明家能让我们在寝室用小功率的电就能自己煮早餐。 ...
    之善阅读 142评论 0 1
  • 我们每天辛苦的健身与训练,除了想让自己有一个更完美的体型外,更多的是追求一生的健康。而健康的关键是有一个适当的营养...
    晃悠的老刘忙阅读 1,105评论 1 2