¿Cómo romper la función _.each() en Underscore.js?

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *