javascript如何計算數(shù)組中某值的出現(xiàn)次數(shù)
js計算數(shù)組中某值的出現(xiàn)次數(shù)
需求
返回一個數(shù)組某值出現(xiàn)的次數(shù)
- 輸入:一個數(shù)組
- 輸出:需要計數(shù)的元素
代碼
/* 傳入一個數(shù)組 返回一個數(shù)組某值出現(xiàn)的次數(shù) */ const countOccurences = (arr, value) => arr.reduce((a, v) => v === value ? a + 1 : a + 0, 0); console.log('[1,3,4,6,1,3,5,6,3,1]中 1 出現(xiàn)的次數(shù)是:'+countOccurences([1,3,4,6,1,3,5,6,3,1],1));
效果
一點(diǎn)想法
Array的reduce()方法 第一參數(shù)是total,第二個參數(shù)是初始值
reduce()的參數(shù)用法很重要,這在之后的復(fù)雜函數(shù)里會有所體現(xiàn)。
如何計算數(shù)組中某項的個數(shù)
<script type="text/javascript"> ? //統(tǒng)計一個數(shù)組中有多少個指定的數(shù)據(jù)項 ? ? var arr1= [12, 5, 8, 130, 44,5,51,5]; ? ? //方法一: ? ? function count(arr,num){ ? ? ? var total = 0; ? ? ? for (var i = arr.length - 1; i >= 0; i--) { ? ? ? ? arr[i] === num ? total++ : '' ? ? ? } ? ? ? console.log(total) ? ? } ? ? count(arr1,5) ? ? //方法二: ? ? function count1(arr,num){ ? ? ? var countArr = arr.filter(function isBigEnough(value) { ? ? ? ? ? return value === num; ? ? ? }); ? ? ? console.log(countArr.length); ? ? } ? ? count1(arr1,5) ? ? //方法三: ? ? function count2(arr,num){ ? ? ? var i = 0; ? ? ? arr.forEach(function(ele){ ? ? ? ? ele === num ? i++ : '';? ? ? ? }) ? ? ? console.log(i) ? ? } ? ? count2(arr1,5) ? ? 方法四: ? ? function count3(arr,num){ ? ? ? var i = 0; ? ? ? arr.find(function(ele){ ? ? ? ? ele === num ? i++ : '';? ? ? ? }) ? ? ? console.log(i) ? ? } ? ? count3(arr1,5) </script>
說明
1.方法一是通過for循環(huán),在循環(huán)體中通過對當(dāng)前項是否等于指定值的三元運(yùn)算,對計數(shù)器進(jìn)行累加得到。
2.方法二通過數(shù)組的filter方法,返回滿足條件的項,組成一個新數(shù)組,所以我們判斷數(shù)組的長度就好了。
3.方法三是利用數(shù)組的forEach方法,它會對數(shù)組的每一項調(diào)用回調(diào)函數(shù),類似for循環(huán),之后也是對滿足條件的項進(jìn)行統(tǒng)計。
4.方法四是利用數(shù)組的find方法,它也會去數(shù)組中尋找符合條件的項,并執(zhí)行回調(diào)函數(shù),所以只需要統(tǒng)計次數(shù)就好。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
JS奇技之利用scroll來監(jiān)聽resize詳解
這篇文章主要給大家介紹了JS奇技之利用scroll來監(jiān)聽resize的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-06-06bootstrap實現(xiàn)動態(tài)進(jìn)度條效果
本篇文章主要介紹了bootstrap實現(xiàn)動態(tài)進(jìn)度條效果,進(jìn)度條可以加強(qiáng)應(yīng)用的用戶體驗效果,看到數(shù)字,具有一定的參考價值,有興趣的可以了解一下。2017-03-03js中字符串編碼函數(shù)escape()、encodeURI()、encodeURIComponent()區(qū)別詳解
JavaScript中有三個可以對字符串編碼的函數(shù),分別是: escape,encodeURI,encodeURIComponent,相應(yīng)3個解碼函數(shù):unescape,decodeURI,decodeURIComponent 。接下來通過本文給大家介紹三者之家的區(qū)別,感興趣的朋友一起學(xué)習(xí)吧2016-04-0411種JavaScript前端數(shù)據(jù)去重方式總結(jié)
這篇文章主要為大家總結(jié)了JavaScript去重的11種方式,各有優(yōu)缺點(diǎn),文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,需要的可以根據(jù)需求合理使用2023-06-06