¿Cómo obtener elementos eliminados de una array determinada hasta que la función pasada devuelva verdadero en JavaScript?

Las arrays en JavaScript tienen muchos métodos que facilitan muchas operaciones. 

En este artículo, veamos diferentes formas de obtener los elementos eliminados antes de que la función pasada devuelva algo.

Tomemos una array ordenada y la tarea es eliminar todos los elementos menores que el valor del limitador pasado a la función, necesitamos imprimir todos los elementos eliminados.

Método 1: Usar el método slice()

En una función, si hay varias declaraciones de retorno, solo se ejecuta la primera declaración de retorno y se completa la función.

Fragmento de código:

var retrieveRemoved = function (arg_1, arg_2) {
    var i;
    for (i = 0; i < array.length; i++) {
        if (condition) {
            return statement1;
        }
    }

    return statement2;
}

Ejemplo:

Javascript

<script> 
   
 var array = [1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 8, 8];
   
 // Removing elements less than 5 and returning them 
 
 var limiter = 5;
 
 // function which slices the array taking limiter as parameter
 var retrieveRemoved = function (array, limiter) {
     var i;
     for (i = 0; i < array.length; i++) {
     // If the number value is greater or equal than limiter
         if (array[i] >= limiter) {
 
             // It takes the array from 0th 
             // index to i, excluding it
             return array.slice(0, i);
         }
     }
       
     return array.slice(i);
 }
 var removed = retrieveRemoved(array, limiter);
 console.log("The removed elements: " + removed);
</script>

Producción:

The removed elements: 1,2,2,3,4

Método 2: usar otra array. Se puede usar otra array para verificar la condición. Si no cumple la condición, estos son los elementos a eliminar. Empujamos todos los elementos que no satisfacen la condición a otra array y devolvemos la array resultante.

Ejemplo:

Javascript

<script>  
  var array = [1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 8, 8];
    
  // Removing elements less than 5 and returning them
  var limiter = 5;
  
  var retrieveRemoved = function (array, limiter) {
      var i,s;
      var res=[];
      for (i = 0; i < array.length; i++) {
          if (array[i] < limiter) {
            
              // Push() method is used to 
              // values into the res[].        
              res.push(array[i]);    
          }
          else{
              s=i;
              break;
          }
      }
      return res;
  
      return array.slice(i);
  }
  var removed = retrieveRemoved(array, limiter);
  console.log("The removed elements are: " + removed);
</script>

Producción:

The removed elements are: 1,2,2,3,4

Publicación traducida automáticamente

Artículo escrito por lokeshpotta20 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 *