我正在使用角度2开始。 所以我试图用语言属性来检查一个数组。 我想计算每种不同的语言值,然后用语言显示计数。我可以分别做这些,但我需要能够将语言从高到低排序。 与此http://jsfiddle.net/aQsuP/9/
类似的内容 var current = null;
var cnt = 0;
for (var i = 0; i < this.array_elements.length; i++) {
if (this.array_elements[i] != current) {
if (cnt > 0) {
document.write(current + ' comes --> ' + cnt + ' times<br>');
}
current = this.array_elements[i];
cnt = 1;
} else {
cnt++;
}
}
if (cnt > 0) {
document.write(current + ' comes --> ' + cnt + ' times');
}
}
答案 0 :(得分:0)
.sort()将进行排序。要使用它,结果数组应该是一个对象数组。 试试这段代码
var array_elements = ["a", "b", "c", "d", "e", "a", "b", "c", "f", "g", "h", "h", "h", "e", "a"];
var arrayOfLetters =[];
var arrayOfLetterObjects=[];
for(var i=0;i<array_elements.length;i++)
{
if(arrayOfLetters.indexOf(array_elements[i])>-1)
{
//arrayOfLetterObjects.push({"letter": array_elements[i],"value":arrayOfLetterObjects.value+1});
arrayOfLetterObjects[arrayOfLetters.indexOf(array_elements[i])].value+=1;
}
else
{
arrayOfLetters.push(array_elements[i]);
arrayOfLetterObjects.push({"letter": array_elements[i],"value":1});
}
if(i==array_elements.length-1)
{
console.log(arrayOfLetterObjects.sort(function(a, b){
return b.value - a.value;
}));
}
}