今天就简单的说一下项目中用到的一些循环:
map和foreach
两者既可以遍历数组也可以遍历对象,并且他们的用法和写法是相同的,都是通过callback来进行事件处理,而且传的参数也一样。下面使用map举例应用方式如下,
其中的四个参数按顺序分别是:当前元素的值、当前元素的索引、当前元素属于哪个数组对象、本身的this指向【如果传入则指向调用该方法的位置;如果为传入则指向window】。
这两者最直接的区别在于:
1、map可以使用链式调用,foreach不行;
2、map返回的是一个新的数组,foreach什么也不返回;
3、foreach不能通过break或者return的方式来结束循环而map可以。
swith
swith循环由swith和case构成。感觉它更适合用于循环项较少且多判断的情况。应用方式如下:
$each
$each为通用遍历方法,即可遍历数组也可以遍历对象,想终止的话让回调函数返回false就可以了。使用方面的话首先得引入jq,使用上整体和map差不多,不再做解释了,直接上应用方式:
两个参数分别指:object:需要遍历的对象或数组;callback:每个成员/元素执行的回调函数。【其中callback里面有两个参数:第一个为对象的成员或数组的索引,第二个为对应变量或内容。】
for循环
我个人在项目中习惯于使用for循环,遍历数组的话直接用for,遍历对象的话可以使用for in的方法,可以使用break和return结束循环,因为是最基本的循环方式感觉没什么好说的,直接上用法吧:
另外有三种处理循环的方式:
- continue 跳过当前循环,进行下一个循环;
- break 跳出循环的专用方法,使用后整个循环直接结束;
- return 此方法其实并不是专门用于跳出循环的,return本身是用于结束函数的,如果在循环中使用的话相当于提前结束了函数,而循环在函数中,就一起被终止了。
以上纯属个人理解,如果有问题或者错误,还请留言批注,我会及时更新改正。