2015-10-29 2 views
1

я пытался получить пересчитать результат в порядке возрастанияПовторный подсчет Количество результат в порядке возрастания

Ниже мой код

var NewArray = [1,4,5,2,1,3,4,2,4,5,6,4,2,1,7]; 
    var SortNewArray = NewArray.sort(); 
    var SortNewArrayLength = SortNewArray.length; 
    var prev = SortNewArray[0]; 
    var count = 1; 
    for(var i =0; i<SortNewArrayLength; i++) 
    { 
    if(SortNewArray[i] == prev) 
    { 
     count++; 
    } 
    else 
    { 
     console.log(SortNewArray[i] + " comes " + count + " times "); 
     prev = SortNewArray[i]; 
     count = 1; 
    } 
    } 

это выход я получаю

enter image description here

что бы я ни отмечал в красном цвете. Я хочу, чтобы они подсчитывались в порядке возрастания

Пожалуйста, кто-нибудь может мне помочь?

+5

это любым способом, связанным с 'java' или' c'? – SomeJavaGuy

+1

javascript! = Java – Truthira

+0

C не подходит для привода C. ;) – epascarello

ответ

0

Изменение var count = 1; в var count = 0; и изменить

console.log(SortNewArray[i] + " comes " + count + " times "); 

в

console.log(SortNewArray[i-1] + " comes " + count + " times "); 
1
var NewArray = [1,4,5,2,1,3,4,2,4,5,6,4,2,1,7]; 
var counts = {}; 

// first collect the count of each number 
NewArray.forEach(function(n){ 
    if(counts[n]){ 
     counts[n] += 1; 
    } 
    else { 
     counts[n] = 1;  
    } 
}); 
// now counts = { 1:3, 2:3, 3:1, 4:4, 5:2, 6:1, 7:1 } 

// get the keys (unique numbers from NewArray) and sort them by their values (count) 
var keys = Object.keys(counts).sort(function(a, b){ 
    return counts[a] > counts[b]; 
}) 

// print key:value pairs sorted by value 
keys.forEach(function(n){ 
    console.log("%s comes %d times", n, counts[n]); 
}) 

/* 
3 comes 1 times 
6 comes 1 times 
7 comes 1 times 
5 comes 2 times 
1 comes 3 times 
2 comes 3 times 
4 comes 4 times 
*/ 

http://jsfiddle.net/s384qq66/

+0

Спасибо, что он работает правильно, что я ожидаю. спасибо – user993164

+0

@ user993164 рад помочь. Было бы хорошо, если бы вы отметили ответ как принятый;) – pawel

Смежные вопросы