10 diciembre, 2023

ELIMINAR TODAS LAS OCURRENCIAS DE UN ELEMENTO EN UN ARRAY CON TYPESCRIPT

Hola a todos,

El post de hoy creo que va a resultar de bastante utilidad. Se trata de eliminar todas las ocurrencias que tenga un elemento específico en un array.

Por ejemplo, si tenemos la siguiente serie: [‘1’, ‘1’, ‘2’, ‘3’ ,’3′, ‘5’, ‘6’, ‘6’ ] y decidimos eliminar el 3, el resultado esperado será: [‘1’, ‘1’, ‘2’, ‘5’, ‘6’, ‘6’ ].

Como quiero que el ejemplo sea práctico, en lugar de crear la matriz y pegarla en el ejemplo (que es lo habitual en los tutoriales que hay publicados), lo haremos seleccionando un rango de una celda.

Por ejemplo así:

La función que podéis ver en la barra de fórmulas es la siguiente:

/**
 * @customfunction
 * @param {string[][]} miRango
 */
function Elimina_elemento(miRango, item) {
  //pasamos el rango seleccionado a un array
  miRango = miRango.toString().split(",");
  //eliminamos el elemento indicado
  function elimina_todo(miRango, value) {
    var i = 0;
    while (i < miRango.length) {
      if (miRango[i] === item) {
        miRango.splice(i, 1);
      } else {
        ++i;
      }
    }
  }
  //pasamos resultado a la función
  elimina_todo(miRango, item);
  return (miRango.join(', '))
};

Solo tenemos que copiarla y pagarla en nuestro editor de Script Lab y probarla:

Como podéis observar hemos indicado que no se muestre el 7 en los elementos que nos devuelva la función.

He decidido programarlo como una función definida, en realidad son dos funciones, una que ayuda a capturar los datos del rango y pasarlos a un array y la otra que se encarga de eliminar el dato seleccionado.

Espero que sea de utilidad, disfrutad de lo que queda de domingo!!.

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

Comparte este post

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies