No es posible romper la función _.each. La razón es que la función _.each funciona de manera similar a la función forEach e imita su comportamiento nativo. No nos permite romper el ciclo o escapar de él excepto lanzando una excepción. Sin embargo, uno puede usar diferentes métodos como:
- Lanzar excepción
- Función _.buscar()
- función _.alguna()
Lanzar excepción: se puede lanzar una excepción de cada uno al obtener el valor deseado.
Sintaxis:
try { _(arrayName).each(function(elementName){ // your code with condition where // exception is to be thrown }) } catch(exception){ // dont do anything here }
Ejemplo:
<script> var arr = [10, 20, 30, 40]; var cnt = 0; try { _(arr).each(function (value) { if (value == 30) { throw new Error(); } // Write your own code to // use the other values, // for example: console.log(cnt++); }) } catch (e) { // Don't do anything here } </script>
Output:
0 1
Aquí se lanza una excepción cuando se detecta el valor 30. De lo contrario, el recuento (cnt) se incrementa en 1
Función _.find(): La función _.find() se puede utilizar para romper el ciclo cuando se encuentra el valor requerido. El resultado se puede almacenar en una variable externa.
_.find(arayName, function(elementName){ if(elementName == value){ return false; } // Write your own code }
Ejemplo:
<script> var arr = [10, 20, 30, 40]; var cnt = 0; _.find(arr, function (value) { if (value == 30) { return false; } // Write your own code // to use the other values, // for example: console.log(cnt++); }); </script>
Output:
0 1
Aquí la función _.find() devuelve falso cuando se alcanza el valor 30. De lo contrario, el recuento (cnt) se incrementa en 1
Nota: También se puede incluir el bloque «finally» después del bloque «catch».
Función _.some(): La función _.some() es similar a la función _.find() y deja de recorrer la lista una vez que se detecta el valor requerido. El resultado se puede almacenar en una variable externa.
Sintaxis:
_.some(arayName, function(elementName){ if(elementName==value){ return false; } // Write your own code }
Ejemplo:
<script> var arr = [10, 20, 30, 40]; var cnt = 0; _.some(arr, function (value) { if (value == 30) { return false; } // Write your own code // to use the other values, // for example: console.log(cnt++); }); </script>
Output:
0 1
Aquí la función _.some() devuelve falso cuando se detecta el valor 30. De lo contrario, el recuento (cnt) se incrementa en 1.
Publicación traducida automáticamente
Artículo escrito por himanshu0809 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA