毎日30秒⏱ 配列項目を統計する
1596 ワード
概要
配列、統計、巡回
配列中の項目は、指定された方法またはパラメータに基づいて統計します.
関数は
使用シーン
学生の成績の分布を統計すると、スコアの統計対象に戻ります.統計ユーザー費用区間は、対応する統計オブジェクトを得るために区間判定関数を導入することができる.
1つの配列の中のデータ項目の出現回数を判断します.
困った都市では肩を並べて同行する人が必ずいます.より多くの人に文章を見てもらいたいなら、 を励まそうとすれば、二年生はギズブに もし小二ともっと交流したいなら、WeChat この原稿はPush MeTopから来ています.
配列、統計、巡回
配列中の項目は、指定された方法またはパラメータに基づいて統計します.
// 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;
}, {});
コード解析関数は
Array.prototype.map
によってデータを
に実行し、typeof
によって関数かどうかを判断し、そうでなければ(val) => val[fn]
を使用して属性を読み取り、この関数はプログラミングに使用される頻度が高い.最後にreduceを使ってデータをまとめ、統計したデータを返します.使用シーン
学生の成績の分布を統計すると、スコアの統計対象に戻ります.統計ユーザー費用区間は、対応する統計オブジェクトを得るために区間判定関数を導入することができる.
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')
})
類似コード1つの配列の中のデータ項目の出現回数を判断します.
// https://30secondsofcode.org
const countOccurrences = (arr, val) => arr.reduce((a, v) => (v === val ? a + 1 : a), 0)
共に成長する困った都市では肩を並べて同行する人が必ずいます.
は私達を一緒に成長させます.
を注文してもいいです.
を与えられます.m353839115
を追加します.