Eliminación de elementos de un array utilizando una función de devolución de llamada

Beginner

This tutorial is from open-source community. Access the source code

Introducción

En este laboratorio, trabajaremos en un desafío de programación de JavaScript que implica manipular arrays. El objetivo de este laboratorio es escribir una función que elimine elementos del final de un array hasta que se cumpla una condición específica, y devuelva los elementos eliminados. Utilizarás varios métodos de array de JavaScript y una función de devolución de llamada para completar este desafío.

Eliminando elementos de un array desde el final hasta que se cumpla una condición

Para comenzar a practicar la codificación, abre la Terminal/SSH y escribe node.

Aquí hay una función que elimina elementos del final de un array hasta que la función pasada devuelva false. Luego devuelve los elementos eliminados.

Para utilizarla, crea una copia invertida del array utilizando el operador de propagación (...) y Array.prototype.reverse(). Luego, recorre la copia invertida utilizando un bucle for...of sobre Array.prototype.entries() hasta que el valor devuelto por la función sea falso.

La función de devolución de llamada, fn, acepta un solo argumento que es el valor del elemento. Finalmente, devuelve los elementos eliminados utilizando Array.prototype.slice().

const takeRightWhile = (arr, fn) => {
  for (const [i, val] of [...arr].reverse().entries())
    if (!fn(val)) return i === 0 ? [] : arr.slice(-i);
  return arr;
};

Aquí hay un ejemplo de cómo utilizar la función:

takeRightWhile([1, 2, 3, 4], (n) => n >= 3); // [3, 4]

Resumen

¡Felicitaciones! Has completado el laboratorio Eliminar elementos de un array desde el final mientras se cumpla una condición. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.