jquery
1.首先,上jquery源码:
- each: function( obj, callback ) {
- var length, i = 0;
- //判断是否为数组
- if ( isArrayLike( obj ) ) {
- length = obj.length;
- for ( ; i < length; i++ ) {
- //为数组中的每一项执行函数,如果函数返回false,则终止循环;返回true则继续下一个循环
- if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
- break;
- }
- }
- } else {
- for ( i in obj ) {
- if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
- break;
- }
- }
- }
- return obj;
- },
通过源码的分析,就很容易理解了,jquery中的each()跳出当前循环,继续执行下一个循环为return true;跳出整个的for循环为:return false;
实例:
- function getValue() {
- var value="";
- $('input[name="Fruit"]').each(function(index, element) {
- if($(element).parent().hasClass("radioOn")) {
- value= $(element).val();
- //终止循环 终止本次循环为:return true
- return false;
- }
- });
- //该方法的返回
- return value;
- }
javaScript:
对于js主要写数组的几个遍历方法:every(),filter(),forEach(),map(),some()
1.every():对数组中的每一项运行给定函数,如果该函数针对每一项都返回true,则返回true;其可以通过控制函数返回true或者false来控制循环是否继续
实例:
- function indexOf(arr, item) {
- if(Array.isArray(arr)) {
- var indexValue = -1;
- arr.every(function(element, index, arr) {
- if(element == item) {
- indexValue = index;
- //跳出循环
- return false;
- }
- //为了保证循环正常的运行
- return true;
- });
- return indexValue;
- }
- }
2.filter():对数组中的每一项运行给定的函数,返回函数返回值为true的项组成的数组;即,最后的返回值为一个新的数组;该方法会将整个数组全部遍历完,不能够通过控制返回true或者false来中断循环.(该方法可用于筛选数组中的元素)
3.forEach():对数组中的每一项运行给定函数,这个方法没有返回值.(该方法可用于对数组中的元素进行逻辑处理,无返回值)
4.map():对数组中的每一项运行给定的函数,返回函数运行后的所有结果组成的数组;(适用于对数组中的元素进行逻辑处理,并且返回处理结果)
5.some():对数组中的每一项运行给定的函数.如果该函数对任一项返回true,则返回true.可通过控制返回true或者false来决定是否中断循环;
实例:
- function indexOf(arr, item) {
- if(Array.isArray(arr)) {
- var indexValue = -1;
- arr.some(function(element, index, arr) {
- if(element == item) {
- indexValue = index;
- return true;
- }
- });
- return indexValue;
- }
- }