jquery数组遍历,终止循环&js数组遍历,终止循环

jquery

 1.首先,上jquery源码:

[javascript]  view plain  copy
  1. each: function( obj, callback ) {  
  2.         var length, i = 0;  
  3.         //判断是否为数组  
  4.         if ( isArrayLike( obj ) ) {  
  5.             length = obj.length;  
  6.             for ( ; i < length; i++ ) {  
  7.                 //为数组中的每一项执行函数,如果函数返回false,则终止循环;返回true则继续下一个循环  
  8.                 if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {  
  9.                     break;  
  10.                 }  
  11.             }  
  12.         } else {              
  13.             for ( i in obj ) {  
  14.                 if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {  
  15.                     break;  
  16.                 }  
  17.             }  
  18.         }  
  19.         return obj;  
  20.     },  

通过源码的分析,就很容易理解了,jquery中的each()跳出当前循环,继续执行下一个循环为return true;跳出整个的for循环为:return false;

实例:

[javascript]  view plain  copy
  1. function getValue() {  
  2.                 var value="";  
  3.                 $('input[name="Fruit"]').each(function(index, element) {  
  4.                     if($(element).parent().hasClass("radioOn")) {  
  5.                         value= $(element).val();  
  6.                         //终止循环   终止本次循环为:return true  
  7.                         return false;  
  8.                     }  
  9.                 });  
  10.                 //该方法的返回  
  11.                 return value;  
  12.             }  

javaScript:

对于js主要写数组的几个遍历方法:every(),filter(),forEach(),map(),some()

1.every():对数组中的每一项运行给定函数,如果该函数针对每一项都返回true,则返回true;其可以通过控制函数返回true或者false来控制循环是否继续

实例:

[javascript]  view plain  copy
  1. function indexOf(arr, item) {  
  2.                 if(Array.isArray(arr)) {  
  3.                     var indexValue = -1;  
  4.                     arr.every(function(element, index, arr) {  
  5.                         if(element == item) {  
  6.                             indexValue = index;  
  7.                             //跳出循环    
  8.                             return false;  
  9.                         }  
  10.                         //为了保证循环正常的运行    
  11.                         return true;  
  12.                     });  
  13.                     return indexValue;  
  14.                 }  
  15.             }  


2.filter():对数组中的每一项运行给定的函数,返回函数返回值为true的项组成的数组;即,最后的返回值为一个新的数组;该方法会将整个数组全部遍历完,不能够通过控制返回true或者false来中断循环.(该方法可用于筛选数组中的元素)

3.forEach():对数组中的每一项运行给定函数,这个方法没有返回值.(该方法可用于对数组中的元素进行逻辑处理,无返回值)

4.map():对数组中的每一项运行给定的函数,返回函数运行后的所有结果组成的数组;(适用于对数组中的元素进行逻辑处理,并且返回处理结果)

5.some():对数组中的每一项运行给定的函数.如果该函数对任一项返回true,则返回true.可通过控制返回true或者false来决定是否中断循环;

实例:

[javascript]  view plain  copy
  1. function indexOf(arr, item) {  
  2.                 if(Array.isArray(arr)) {  
  3.                     var indexValue = -1;                       
  4.                     arr.some(function(element, index, arr) {  
  5.                         if(element == item) {  
  6.                             indexValue = index;  
  7.                             return true;  
  8.                         }  
  9.                     });  
  10.                     return indexValue;  
  11.                 }  
  12.             }  
注意:break以及continue 是跳出for或者while循环

猜你喜欢

转载自blog.csdn.net/weixin_42011096/article/details/80265276