Javascript와 중복되는 요소를 제거하기 위한 4가지 형식
10553 단어 es6arrayarreglosjavascript
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
indexOf
data.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 acumuladorForEach 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.
Reference
이 문제에 관하여(Javascript와 중복되는 요소를 제거하기 위한 4가지 형식), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/matiasfha/4-formas-de-eliminar-elementos-duplicados-en-un-arreglo-con-javascript-3j6f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)