找出數組中出現次數最多的一項並統計次數

實例1

var a,sum = 0;
var obj = {};

var arr = [1,3,7,3,1,8,1,10,6,1];
for(var i = 0, j = arr.length;i < j; i ++){
    if(obj[arr[i]]){
        obj[arr[i]]  = obj[arr[i]] + 1;
    }else{
        obj[arr[i]]  = 1;
    }
}

for(var k in obj){
    if(obj[k] > sum){
        sum = obj[k];
        a = k;
    }
}

說明:數組中的值看成對象裏面的屬性;首先用for循環遍歷數組中有哪些值,其次判斷對象裏的屬性是否有,沒有就給它賦值爲1,有就在+1;再遍歷對象的屬性,對象的屬性值大於0就把對象的屬性值賦給sum,依次進行比較獲得最大值就是出現次數最多的;再把對應的屬性賦給a就是對應的那個數組項。數組

擴展(字符串中出現次數最對的字符是哪一項並統計)

實例2

var obj={};
var a,sum= 0;
var stringone="abcdbdcb";
for(var i=0,j=stringone.length;i<j;i++){
    var s = stringone.charAt(i);
    if(obj[s]){
        obj[s]++;    
    }else{
        obj[s]=1;
    }    
}
for(var k in obj){
    if(obj[k]>sum){
        sum=obj[k];
        a=k;
    }
}

charAt() 方法可返回指定位置的字符。
請注意,JavaScript 並無一種有別於字符串類型的字符數據類型,因此返回的字符是長度爲 1 的字符串。code

語法:stringObject.charAt(index)對象

註釋:字符串中第一個字符的下標是 0。若是參數 index 不在 0 與 string.length 之間,該方法將返回一個空字符串。
例子,在字符串 "Hello world!" 中,咱們將返回位置 1 的字符:ip

var str="Hello world!"
document.write(str.charAt(1)) //e
相關文章
相關標籤/搜索