¿Cómo filtrar valores de una array para la que la función de comparación no devuelve verdadero en JavaScript?

La tarea es filtrar la array en función del valor devuelto cuando se pasa a la función dada. 

El propósito es recorrer la array y ejecutar una función que devolverá verdadero o falso. Luego, filtra todos los valores para los que la función (función de comparación) no devuelve verdadero .

Enfoque: si la array dada es [5, 6, 7, 8, 9, 2, 6, 3, -4, 0, -9, -6] y la tarea es filtrar los valores negativos y desea imprimir eso valores.

Vamos a crear una función que devuelva verdadero si el valor es positivo, de lo contrario, devuelve falso .

Código JavaScript:

Javascript

<script>
// Comparator function
const myFilter = (element) => {
  if(element >= 0){
      return true;
  }
  else{
      return false;
  }
} 
</script>

Para filtrar la array, recorreremos la array y llamaremos a esta función » myFilter «. El valor se omite si devuelve verdadero , si la función devuelve falso, almacenaremos ese valor en filteredArr usando » filteredArr. push() ” la array filtrada. Usamos forEach bucle a través de los elementos de la array.

Ejemplo 1:

Javascript

<script>
    const arr = [5, 6, 7, 8, 9, 2, 6, 3, -4, 0, -9, -6];
  
    // Filtered array for which function
    // returned false
    var filteredArr = [];
  
    // Comparator function
    const myFilter = (element) => {
        if (element >= 0) {
            return true;
        }
        else {
            return false;
        }
    }
  
    // Iterate through each element 
    arr.forEach(element => {
  
        // Push in the filteredArr if 
        // it returns false
        if (myFilter(element) === false) {
            filteredArr.push(element);
        }
    })
  
    console.log("After filtering:", filteredArr);
</script>

Producción:

After filtering : [ -4, -9, -6 ]

Ejemplo 2: para filtrar los valores positivos, podemos cambiar nuestra función myFilter o la sección de código de forEach loop. Si cambiamos la condición en la función myFilter por menos de cero, la función devolverá false para un valor positivo en su lugar. Guardaremos esos valores positivos en filteredArr .

Javascript

<script>
  
    // Data to filter
    const arr = [5, 6, 7, 8, 9, 2, 6, 3, -4, 0, -9, -6];
  
    // Filtered array for which function
    // returned false
    var filteredArr = [];
  
    // Comparator function
    const myFilter = (element) => {
        if (element < 0) {
            return true;
        }
        else {
            return false;
        }
    }
  
    // Iterate through each element 
    arr.forEach(element => {
  
        // Push in the filteredArr if
        // function return false
        if (myFilter(element) === false) {
            filteredArr.push(element);
        }
    })
  
    console.log("After filtering :", filteredArr);
</script>

Producción:

After filtering : [ 5, 6, 7, 8, 9, 2, 6, 3, 0 ]

Hemos filtrado con éxito la array para la que la función no devuelve verdadero .

Publicación traducida automáticamente

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