Javascript 重复的数字计数结果按升序排列
我试着按升序计算结果 下面是我的代码Javascript 重复的数字计数结果按升序排列,javascript,arrays,sorting,Javascript,Arrays,Sorting,我试着按升序计算结果 下面是我的代码 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++)
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;
}
}
var NewArray=[1,4,5,2,1,3,4,2,4,5,6,4,2,1,7];
var SortNewArray=NewArray.sort();
var SortNewArray.length=SortNewArray.length;
var prev=SortNewArray[0];
var计数=1;
对于(var i=0;i更改var count=1;
更改为var count=0;
并更改
console.log(SortNewArray[i] + " comes " + count + " times ");
到
这与java
或c
有关吗?c不代表c驱动器。;)收集频率并使用列表。这将有所帮助,我希望通过每个数字的出现次数(计数)输出。感谢它正常工作,我期待它能正常工作。非常感谢。
console.log(SortNewArray[i-1] + " comes " + count + " times ");
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
*/