javascript如何計(jì)算數(shù)組中某值的出現(xiàn)次數(shù)
js計(jì)算數(shù)組中某值的出現(xiàn)次數(shù)
需求
返回一個(gè)數(shù)組某值出現(xiàn)的次數(shù)
- 輸入:一個(gè)數(shù)組
- 輸出:需要計(jì)數(shù)的元素
代碼
/*
傳入一個(gè)數(shù)組 返回一個(gè)數(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,第二個(gè)參數(shù)是初始值
reduce()的參數(shù)用法很重要,這在之后的復(fù)雜函數(shù)里會(huì)有所體現(xiàn)。
如何計(jì)算數(shù)組中某項(xiàng)的個(gè)數(shù)
<script type="text/javascript">
? //統(tǒng)計(jì)一個(gè)數(shù)組中有多少個(gè)指定的數(shù)據(jù)項(xiàng)
? ? 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>說(shuō)明
1.方法一是通過(guò)for循環(huán),在循環(huán)體中通過(guò)對(duì)當(dāng)前項(xiàng)是否等于指定值的三元運(yùn)算,對(duì)計(jì)數(shù)器進(jìn)行累加得到。
2.方法二通過(guò)數(shù)組的filter方法,返回滿足條件的項(xiàng),組成一個(gè)新數(shù)組,所以我們判斷數(shù)組的長(zhǎng)度就好了。
3.方法三是利用數(shù)組的forEach方法,它會(huì)對(duì)數(shù)組的每一項(xiàng)調(diào)用回調(diào)函數(shù),類似for循環(huán),之后也是對(duì)滿足條件的項(xiàng)進(jìn)行統(tǒng)計(jì)。
4.方法四是利用數(shù)組的find方法,它也會(huì)去數(shù)組中尋找符合條件的項(xiàng),并執(zhí)行回調(diào)函數(shù),所以只需要統(tǒng)計(jì)次數(shù)就好。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
uni.setNavigationBarColor設(shè)置字體顏色及背景色無(wú)效的4個(gè)原因及解決
這篇文章主要給大家介紹了關(guān)于uni.setNavigationBarColor設(shè)置字體顏色及背景色無(wú)效的4個(gè)原因及正確解決辦法,文中還介紹了uni-app設(shè)置頁(yè)面導(dǎo)航條顏色的實(shí)例代碼,需要的朋友可以參考下2024-01-01
使用js實(shí)現(xiàn)關(guān)閉js彈出層的窗口
本篇文章主要是對(duì)使用js實(shí)現(xiàn)關(guān)閉js彈出層的窗口的示例代碼進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-02-02
使用JavaScript實(shí)現(xiàn)響應(yīng)式計(jì)數(shù)器動(dòng)畫(huà)
在本文中,我們將學(xué)習(xí)如何使用?HTML?CSS?和?JavaScript創(chuàng)建響應(yīng)式計(jì)數(shù)器動(dòng)畫(huà)。?我們?cè)诤芏嗟胤蕉伎梢杂?,比如適用于不同類型的個(gè)人網(wǎng)站、企業(yè)網(wǎng)站等,感興趣的可以了解一下2022-08-08
layui實(shí)現(xiàn)給某一列加點(diǎn)擊事件
今天小編就為大家分享一篇layui實(shí)現(xiàn)給某一列加點(diǎn)擊事件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
webpack4手動(dòng)搭建Vue開(kāi)發(fā)環(huán)境實(shí)現(xiàn)todoList項(xiàng)目的方法
這篇文章主要介紹了webpack4手動(dòng)搭建Vue開(kāi)發(fā)環(huán)境實(shí)現(xiàn)todoList項(xiàng)目的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05
學(xué)習(xí)使用Bootstrap柵格系統(tǒng)
這篇文章主要教大家學(xué)習(xí)使用Bootstrap柵格系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
JS+HTML5實(shí)現(xiàn)圖片在線預(yù)覽功能
這篇文章主要為大家詳細(xì)介紹了JS+HTML5實(shí)現(xiàn)圖片在線預(yù)覽功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07

