javascript在数组中查找不同的属性值并计算每个值

时间:2016-11-20 02:43:10

标签: angular

我正在使用角度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');
}

}

1 个答案:

答案 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;

            }));

        }
    }