Javascript와 중복되는 요소를 제거하기 위한 4가지 형식

La manipulación de arreglos es una de las tareas más comunes y constantes a la hora desarrollar una aplicación. Los arreglos son estructuras de datos básicas en cualquier programa. Una de estas tareas de manipulación es la de remover duplicados de un arreglo.
Javascript, por su naturaleza flexible, ofrece variadas formas de efectuar esta tarare y la elección de cuál utilizar compatiblee tanto a la experiencia del desarrollador como al caso de uso.

TLDR; 비디오와 에그헤드의 동영상


배열.필터



Una de las formas más directas de remover elementos de un arreglo es utilizar Array.filter
Array.filter es un metodo inmutable que retorna un nuevo arreglo con los elementos que cumplan la condición Implementada por la función utilizada como argumento.

De forma interna, filter itera sobre los elementos del arreglo y aplica la función argumento en cada item retornando un valor _boolean, s_i el elemento pasa la condición se retorna true indicando que agregado srealágloe.

Para este caso de remover elementos duplicados utilizamos como método auxiliar la función Array.indexOf . Este metodo retorna Array.indexOf retorna el primer indice del arreglo en donde se encuentre un elemento dado.

    let data = [1,2,6,1,2,5,9,'33','33'];

    let result = data.filter((item,index)=>{
      return data.indexOf(item) === index;
    })
    console.log(result); //[1,2,6,5,9,'33']


En este caso, podemos identificar un duplicado cuando el indice no es igual al resultado de indexOfdata.indexOf(item) === index , 레토르나라 시엠프레 라 프리메라 오쿠렌시아 델 item .

세트



El objeto global Set es una estructura de datos, una colección de valores que permite solo almacenar valores únicos de cualquier tipo, incluso valores primitivos u Referencias a objetos.

Es posible iterar sobre los elementos en el orden de inserción.

    let data = [1,2,6,1,2,5,9,'33','33'];

    const dataArr = new Set(data);

    let result = [...dataArr];

    console.log(result); //[1,2,6,5,9,'33']


El caso de utilizar Set para remover duplicados es bastante simple, creamos un nuevo Set basado en el arreglo original utilizando new Set.

Y finalmente puedes converterir el nuevo Set a un arreglo nuevamente utilizando la sintaxis spread.

"Computer Science Junkie"는 "Computer Science Junkie"를 통해 성과를 평가할 수 있습니다. Utilizar Set es un metodo de orden O(nlogn)

줄이다



El método Array.reduce también puede ser utilizado con el mismo propósito.
Array.reduce ejecuta una función sobre cada elemento del arreglo y retorna un valor como un unico resultado. Básicamente permite transformar un arreglo a otro tipo de valor.
Array.reduce 파라메트로 평가, 기능 , 리덕토라 , 퀘티엔 알로 메노스 도스 인수: el acumulador y el item actual de la iteración y como segundo parametro que indica el estare gloico en valor indica

    let data = [1,2,6,1,2,5,9,'33','33'];

    const result = data.reduce((acc,item)=>{
      if(!acc.includes(item)){
        acc.push(item);
      }
      return acc;
    },[])

    console.log(result); //[1,2,6,5,9,'33']


En este caso la función utilizada simplemente revisa si el item actual se encuentra dentro del resultado identificado por la variable acc , de no estarlo, simplemente agrega el valor al acumulador

ForEach y otros 루프


Array.forEach es otra forma de iterar sobre el arreglo y como tal también permite remover duplicados pero de una forma más imperativa.

Aquí es necesario utilizar un arreglo auxiliar para almacenar el resultado del proceso de filtrado

Al iterar sobre el arreglo se utiliza un bloque condicional que verifica que el item no exista ya dentro del arreglo de valores únicos utilizando Array.includes , que permite determinar si un elemento existe oreglo. dentro.


    let data = [1,2,6,1,2,5,9,'33','33'];

    const result = [];
    data.forEach((item)=>{
        //pushes only unique element
        if(!uniqueArr.includes(item)){
            uniqueArr.push(item);
        }
    })
    console.log(result); //[1,2,6,5,9,'33']

Array.forEach al igual que cualquier otro método de iteración directa es una forma imperativa y es de baja performance dado que requiere iterar varias veces sobre el mismo elemento - Array.includes
En resumen las opciones para eliminar duplicado son variadas pero se sustenan en la misma premisa. El uso de iteraciones para corroborar si un elemente ya existe o no, y el uso de estructuras de datos más complejas como Set.

좋은 웹페이지 즐겨찾기