2013-05-28 6 views
0

similaires à cette question - Array value count javascriptDynamic Array Value Count

Comment pourrais-je faire de manière, à l'exception des valeurs dynamiques?

var counts = [] 
var dates= [ "28/05/2013", "27/05/2013", "28/05/2013", "26/05/2013", "28/05/2013" ]; 

Comment obtenir le nombre de valeurs de tableau dupliquées? Alors, combien de 28/05/2013 etc. Les dates sont toutes dynamiques, donc je ne peux pas simplement chercher des valeurs fixes. Je ne peux pas comprendre comment je ferais ça.

Je peux juste jeter cette idée, et obtenir la valeur compte des 10 derniers jours ou quelque chose ... mais cela peut être utile plus tard (si c'est même possible de le faire).

+4

Les solutions sur le lien fourni devrait fonctionner pour vous .. boucle votre tableau et throught appeler la fonction fourni là. –

Répondre

3

Cela le fera:

var counts = {}; 
for (var i=0; i<dates.length; i++) 
    if (dates[i] in counts) 
     counts[dates[i]]++; 
    else 
     counts[dates[i]] = 1; 

Le résultat sera

> counts 
{ 
    "28/05/2013": 3, 
    "27/05/2013": 1, 
    "26/05/2013": 1 
} 
0

Essayez comme cette

Mise à jour

var dates= [ "28/05/2013", "27/05/2013", "28/05/2013", "26/05/2013", "28/05/2013" ]; 
var findStr = "28/05/2013"; 
var indexs = dates.indexOf(findStr,0),count=0; 
for (var i=0;i< dates.length;i++){ 
if (indexs >= 0){ 
    indexs = dates.indexOf(findStr,indexs + 1); 
    count++; 
} 
} 
alert(count); 

See Demo

+0

Essayez d'échanger la première date à 27 à partir de 28, et vous verrez que votre code est plutôt cassé. – Sysyphus

+0

@Sysyphus Sry .. Maintenant, essayez de mettre à jour le code – Dineshkani

+0

Je suis à la recherche d'un compte de chaque élément en double, j'ai peur. –

3

Faire counts un objet pour effectuer la détection des doublons en temps constant.

var counts = {} 

for (var i = 0; i < dates.length; i++) { 
    var date = dates[i]; 
    if (counts[date] === undefined) { 
     counts[date] = 0; 
    } 
    counts[date] += 1; 
} 

console.log(counts); 
+0

Cela fonctionne PARFAITEMENT. Je pense que je comprends comment tu fais ça. –