一個不確定內容的數組,統計每個元素出現的次數的方法


第一種方法使用reduce方法,通過傳入的內容來確定
var arrs=['a','a','d','c','f','d','我','我','他',2,2,5,4,6,8];
function a(){
    return  arrs.reduce( function(prev:any,next:any){
        console.log(prev);
        console.log(next);
        prev[next]=(prev[next]+1) || 1;

        return prev;
    },{})
}

console.log(a());  

第二種 雙重循環對比法

 實現理論:定義一個空數組,第一個循環循環數組,然后創建一個變量存放當前值,然后再創建一個變量存放出現次數,第二個循環跟第一個循環的數據進行對比,如果存在次數變量就加1,對比過的讓他的值變成-1,最后當前值不不等於-1.存入新的數組

 
         
var arr=['a','a','d','c','f','d','我','我','他',2,2,5,4,6,8];
function arrCheck(arr:any){
    var newArr = [];
    for(var i=0;i<arr.length;i++){
        var temp=arr[i];
        var count=0;
        for(var j=0;j<arr.length;j++){
            if(arr[j]==temp){
                count++;
                arr[j]=-1;
            }
        }
        if(temp != -1){
            newArr.push(temp+","+count)
        }
    }
    return newArr;
}
arrCheck(arrs);

  第三種,最簡單

  實現理論: 定義一個空對象,循環這個數組,判斷如果對象里面有這個屬性就給這個值加1(使用hasOwnProperty),沒有呢就把這個屬性添加到這個對象中,設置初始值為1

var arr=['a','a','d','c','f','d','我','我','他',2,2,5,4,6,8];
var obj={};
 for(let i=0;i<arr.length;i++){
     if(obj.hasOwnProperty(arr[i])){
         obj[arr[i]] +=1;
     }else{
         obj[arr[i]] =1;
     }
 }
console.log(obj);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM