Quero criar um algoritmo que me retorne quantas vezes os valores de um array foram repetidos.
Achei um cod em JavaScript, mas estou tendo dúvidas com ele. (https://stackoverflow.com/questions/12749200/how-to-count-array-elements-by-each-element-in-javascript)
array_elements = ["2", "1", "2", "2", "3", "4", "3", "3", "3", "5"];
array_elements.sort();
var current = null;
var cnt = 0;
for (var i = 0; i < array_elements.length; i++) {
if (array_elements[i] != current) {
if (cnt > 0) {
document.write(current + ' comes --> ' + cnt + ' times<br>');
}
current = array_elements[i];
cnt = 1;
} else {
cnt++;
}
}
Dúvida: A variável current, inicializada antes do laço for recebe o valor "nulo", ok. Dentro do primeiro laço for (para correr o array), tem uma condição que diz "se o elemento do array no indice [i] for diferente de current" (aí já tenho uma dúvida. Essa condicional serve para saber se o valor do indice i do array existe? Por exemplo: array[0] = 7: valor existente, diferente de nulo array[5] = : valor inexistente, igual a nulo )
Ainda dentro do primeiro laço condicional e dentro do for, a variável current recebe o elemento do array no índice i.
Por acaso, a variável current, no comando:
if (array_elements[i] != current)
tem o valor nulo ou tem o mesmo valor do array no índice i.
Tenho essa dúvida pois a variável current só recebe um valor após a condição.
Novamente a dúvida: Qual valor está atribuído à variável "current" no momento em que a mesma entra na condicional:
if (array_elements[i] != current)