¿Cómo eliminar valores falsos de una array en JavaScript?

Valores falsos/falsos:   en JavaScript hay 7 valores falsos, que se dan a continuación

  • falso
  • cero (0,-0)
  • string vacía(“”, ‘ ‘ , ` `)
  • BigIntZero(0n,0x0n)
  • nulo
  • indefinido
  • Yaya

En JavaScript, la array acepta todo tipo de valores falsos. Veamos algunos enfoques sobre cómo podemos eliminar valores falsos de una array en JavaScript:

  • Usando el ciclo for-each
  • Usando el método Array.filter
  • Usando el método Array.reduce
  • Usando for…of bucle

Ejemplo: 

Entrada: [23, 0, «gfg», falso, verdadero, NaN, 12, «hola», indefinido, [], «»] 
Salida: [23, «gfg», verdadero, 12, «hola», [] ]
Entrada: [“”, 0, falso, indefinido, NaN, nulo] 
Salida: []

Enfoque: Hay muchos enfoques para lograr esto, algunos de ellos son los siguientes:

Usando for..each loop: en este enfoque, iteramos la array usando for..each loop y en cada iteración, verificamos si el valor es verdadero, si es verdadero, entonces empujamos el valor en una array recién creada , y luego devolvemos la nueva array.

Ejemplo:

Javascript

<script>
  let arr = [23, 0, "gfg", false, true, NaN, 12, "hi", undefined, [], ""];
 
  function removeFalsey(arr) {
    // newly created array
    let newArr = [];
 
    // Iterate the array using the forEach loop
    arr.forEach((k) => {
      // check for the truthy value
      if (k) {
        newArr.push(k);
      }
    });
    // return the new array
    return newArr;
  }
 
  console.log(removeFalsey(arr));
</script>

Producción:

[23, "gfg", true, 12, "hi", []]

Usando el método Array.filter(): En este enfoque, estamos usando el método array.filter . El método de filtro verifica la array y filtra los valores falsos de la array y devuelve una nueva array.

Ejemplo:

Javascript

<script>
  let arr = ["", 0, false, undefined, NaN, null];
 
  function removeFalsey(arr) {
    // Applying the filter method on the array
    return arr.filter((k) => {
      // Checking if the value is truthy
      if (k) {
        return k;
      }
    });
  }
 
  console.log(removeFalsey(arr));
</script>

Producción:

[]

ES6 wayo del método Array.filter(): si puede usar esta oración es6.

Ejemplo:

Javascript

<script>
  let arr = [23, 0, "gfg", false, true, NaN, 12, "hi", undefined, [], ""];
 
  function removeFalsey(arr) {
    // Return the first parameter of the callback function
    return arr.filter((val) => val);
  }
 
  console.log(removeFalsey(arr));
</script>

Producción:

[23, "gfg", true, 12, "hi", []]

Pasar el valor booleano: también puede lograr esto pasando el constructor booleano como argumento del método de filtro. 

Ejemplo:

Javascript

<script>
  let arr = [23, 0, "gfg", false, true, NaN, 12, "hi", undefined, [], ""];
 
  function removeFalsey(arr) {
    // Passing Boolean constructor inside filter
    return arr.filter(Boolean);
  }
 
  console.log(removeFalsey(arr));
</script>

Producción:

[23, "gfg", true, 12, "hi", []]

Usando el método Array.reduce: Usando el método Array.reduce, iteramos la array e inicializamos el acumulador con una array vacía y si el valor actual no es un valor falso, devolvemos un valor concatenado del acumulador; de lo contrario, solo devolvemos el acumulador.

Ejemplo:

Javascript

<script>
  let arr = [23, 0, "gfg", false, true, NaN, 12, "hi", undefined, [], ""];
 
  function removeFalsey(arr) {
    return arr.reduce((acc, curr) => {
      // Check if the truthy then return concatenated value acc with curr.
      // else return only acc.
      if (curr) {
        return [...acc, curr];
      } else {
        return acc;
      }
    }, []); // Initialize with an empty array
  }
 
  console.log(removeFalsey(arr));
</script>

Producción:

[23, "gfg", true, 12, "hi", []]

Usando for…of bucle

Usando for…of loop: usando for…of loop itera la array y verifica cada elemento si es falso o verdadero. Si el elemento es verdadero, empuje el elemento a una array recién creada.

Ejemplo:

Javascript

<script>
  let arr = [23, 0, "gfg", false, true, NaN, 12, "hi", undefined, [], ""];
 
  function removeFalsey(arr) {
 
    // Create a new array
    let output = [];
    for (x of arr) {
      if (x) {
 
        // Check if x is truthy
        output.push(x);
      }
    }
    return output;
  }
 
  console.log(removeFalsey(arr));
</script>

Producción:

[23, "gfg", true, 12, "hi", []]

Usando el bucle for simple: usando el bucle for itere la array y verifique cada elemento si es falso o verdadero. Si el elemento es verdadero, empuje el elemento a una array recién creada.

Ejemplo:

Javascript

<script>
  let arr = [23, 0, "gfg", false, true, NaN, 12, "hi", undefined, [], ""];
 
  function removeFalsey(arr) {
    // Create a new array
    let output = [];
    for (let i = 0; i < arr.length; i++) {
      if (arr[i]) {
        output.push(arr[i]);
      }
    }
    return output;
  }
 
  console.log(removeFalsey(arr));
</script>

Producción:

[23, "gfg", true, 12, "hi", []]

Publicación traducida automáticamente

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