国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

每日 30 秒 ? 對數(shù)組項(xiàng)目進(jìn)行統(tǒng)計(jì)

huayeluoliuhen / 1257人閱讀

簡介
數(shù)組、統(tǒng)計(jì)、遍歷

根據(jù)指定的方法或者參數(shù)對數(shù)組中的項(xiàng)目進(jìn)行統(tǒng)計(jì)。

// 該源碼來自于 https://30secondsofcode.org
const countBy = (arr, fn) =>
  arr.map(typeof fn === "function" ? fn : val => val[fn]).reduce((acc, val) => {
    acc[val] = (acc[val] || 0) + 1;
    return acc;
  }, {});
代碼分析

函數(shù)通過 Array.prototype.map 來對數(shù)據(jù)進(jìn)行清洗,其中利用到 typeof 來判斷是否為函數(shù),否則使用 (val) => val[fn] 來讀取屬性,這個(gè)函數(shù)在編程中用到的頻率挺高的。最后使用 reduce 來對數(shù)據(jù)進(jìn)行歸集,并返回統(tǒng)計(jì)好的數(shù)據(jù)。

使用場景

統(tǒng)計(jì)學(xué)生成績的分布可以傳入score屬性,函數(shù)則會(huì)返回由成績組成的統(tǒng)計(jì)對象。統(tǒng)計(jì)用戶花費(fèi)區(qū)間可以傳入一個(gè)區(qū)間判斷函數(shù)來獲得對應(yīng)的統(tǒng)計(jì)對象。

const students = [
    { name: "xiaoer", score: 80 },
    { name: "xiaosi", score: 90 },
    { name: "menty", score: 50 },
]

const scoreStat = countBy(students, "score")

const users = [
    { name: "xiaoer", cost: 17000 },
    { name: "xiaosi", cost: 8000 },
    { name: "menty", cost: 3000 },
]

const costStat = countBy(users, i => {
    return i.cost > 10000
        ? "high"
        : (i.cost > 5000 ? "mid" : "low")
})
相似代碼

判斷一個(gè)數(shù)組中某個(gè)數(shù)據(jù)項(xiàng)出現(xiàn)的次數(shù)。

// 該源碼來自于 https://30secondsofcode.org
const countOccurrences = (arr, val) => arr.reduce((a, v) => (v === val ? a + 1 : a), 0)
一起成長
在困惑的城市里總少不了并肩同行的 伙伴 讓我們一起成長。

如果您想讓更多人看到文章可以點(diǎn)個(gè) 點(diǎn)贊

如果您想激勵(lì)小二可以到 Github 給個(gè) 小星星

如果您想與小二更多交流添加微信 m353839115

本文原稿來自 PushMeTop

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/109010.html

相關(guān)文章

  • 每日 30 ? 數(shù)組轉(zhuǎn)CSV表格數(shù)據(jù)

    showImg(https://segmentfault.com/img/remote/1460000018771004?w=900&h=500); 簡介 數(shù)組、CSV、表格、工具 將一個(gè)數(shù)組轉(zhuǎn)化為逗號(hào)為分割符的字符串(CSV)即表格數(shù)據(jù)。 // 該源碼來自于 https://30secondsofcode.org const arrayToCSV = (arr, delimiter = ,) =...

    nanchen2251 評論0 收藏0
  • 每日 30 ? 該不該優(yōu)雅

    showImg(https://segmentfault.com/img/remote/1460000018734296?w=900&h=500); 簡介 可讀性、性能、Spread、Reduce 在 優(yōu)雅三連擊 中有同學(xué)提到了 可讀性 這個(gè)關(guān)鍵詞,就小二個(gè)人的觀點(diǎn) 在某個(gè)范圍內(nèi)使用比較常用到的小技巧,可以提升一定的可讀性,文中提到的短路運(yùn)算在初始化變量是提升可讀性的,并且在很多提倡優(yōu)化if 語句...

    JohnLui 評論0 收藏0
  • 每日 30 ? 海量數(shù)據(jù)進(jìn)行切割

    showImg(https://raw.githubusercontent.com/pushmetop/resource/master/30-seconds-for-everyday/chunk/poster.png); 簡介 數(shù)據(jù)分割、分頁、異步操作、DOM優(yōu)化 把數(shù)組按指定大小進(jìn)行分組,可以用于分頁、數(shù)據(jù)切割、異步操作數(shù)據(jù)。 // 該源碼來自于 https://30secondsofcode....

    ShevaKuilin 評論0 收藏0
  • 每日 30 ? 優(yōu)雅初始化數(shù)組

    showImg(https://segmentfault.com/img/remote/1460000018709740?w=900&h=500); 簡介 數(shù)組、初始化、快速生成數(shù)組、內(nèi)存泄露 有時(shí)候會(huì)需要對數(shù)組進(jìn)行一些初始化,最常用到的便是 for 循環(huán): let num = []; for (let i = 0; i < 10; i++) { // 做一些其他操作 // 或者返...

    pcChao 評論0 收藏0
  • 每日 30 ? 誰敢與我一戰(zhàn)

    showImg(https://segmentfault.com/img/remote/1460000018771037?w=900&h=500); 簡介 benchmark、基準(zhǔn)測試、jsPerf 在 優(yōu)雅插入數(shù)組 一文中大家最多的評論就是 能不能加個(gè)基準(zhǔn)測試。小二不是不喜歡加基準(zhǔn)測試而是現(xiàn)在硬件設(shè)備的性能越來越快了,有時(shí)候一些操作不是性能問題的主要原因,當(dāng)然這不是我們不寫出好代碼的理由。 書寫...

    Dionysus_go 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<