第一種方法使用reduce方法,通過(guò)傳入的內(nèi)容來(lái)確定 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()); 第二種 雙重循環(huán)對(duì)比法 實(shí)現(xiàn)理論:定義一個(gè)空數(shù)組,第一個(gè)循環(huán)循環(huán)數(shù)組,然后創(chuàng)建一個(gè)變量存放當(dāng)前值,然后再創(chuàng)建一個(gè)變量存放出現(xiàn)次數(shù),第二個(gè)循環(huán)跟第一個(gè)循環(huán)的數(shù)據(jù)進(jìn)行對(duì)比,如果存在次數(shù)變量就加1,對(duì)比過(guò)的讓他的值變成-1,最后當(dāng)前值不不等于-1.存入新的數(shù)組 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); 第三種,最簡(jiǎn)單 實(shí)現(xiàn)理論: 定義一個(gè)空對(duì)象,循環(huán)這個(gè)數(shù)組,判斷如果對(duì)象里面有這個(gè)屬性就給這個(gè)值加1(使用hasOwnProperty),沒(méi)有呢就把這個(gè)屬性添加到這個(gè)對(duì)象中,設(shè)置初始值為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);
|
|
|
來(lái)自: Coder編程 > 《待分類(lèi)》