Quais das opções abaixo é a melhor alternativa para solucionar o problema de remover os valores duplicados de um array. (ps: o array pode conter mais de 1 milhão de valores)
const array = [3, 5, 5, 7, 9, 9, 1, 9, 2, 5, 7, 9, 2, 42, 12, 56, 87, 34, 23, 34]
Opção 1:
function removeduplicates(array) {
let newarray = [];
for (let i = 0; i < array.length; i++) {
if (array.indexof(array[i]) === i) {
newarray.push(array[i])
}
} return newarray
}
Opção 2:
function removeduplicates(array) {
return array.filter((value, index) => {
return array.indexof(value) === index
})
}
Opção 3:
function removeduplicates(array) {
return [...new set(array)]
}
A melhor alternativa para solucionar o problema de remover valores duplicados de um array depende de alguns fatores, como o tamanho do array e a compatibilidade do código com diferentes navegadores e versões de JavaScript. Vamos analisar cada uma das opções:
i – A primeira opção usa um loop for
para iterar pelo array e adicionar elementos únicos a um novo array. Esta opção é simples e fácil de entender, mas pode ser lenta para grandes arrays, pois o loop precisa ser executado várias vezes para cada elemento.
ii – A segunda opção usa o método filter
do array para criar um novo array contendo apenas elementos únicos. Esta opção é mais concisa do que a primeira e usa uma função de ordem superior do JavaScript, o que é considerado uma boa prática. No entanto, assim como a primeira opção, esta pode ser lenta para grandes arrays, pois o método indexOf
precisa ser chamado para cada elemento.
iii – A terceira opção usa um conjunto (Set
) para remover elementos duplicados do array. Esta é a opção mais eficiente e simples de todas, pois o conjunto elimina automaticamente os elementos duplicados e converte o resultado de volta em um array. No entanto, esta opção só funciona em navegadores modernos que suportam a sintaxe de spread (...
) e o construtor Set
.
Dito isso, a opção mais eficiente e recomendada para remover valores duplicados de um array é a terceira opção: return [...new Set(array)]
. Se a compatibilidade do código com navegadores antigos for um problema, a segunda opção também pode ser uma boa escolha, pois é mais concisa do que a primeira e usa uma função de ordem superior.
Deixe um comentário