第一種方法使用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);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/21689.html
標籤:JavaScript
