ES 6--Set,reduce特性計算)におけるラベルの種類数と各ラベルの数

1062 ワード

let tags = document.querySelectorAll('*')
let tagNames = Array.from(tags).map(tag => tag.tagName)

// tag    
console.log(new Set(tagNames).size)

//   tag       
let res = tagNames.reduce((holder, cur) => {
  holder[cur] = holder[cur] ? ++ holder[cur] : 1
  return holder
}, {})
console.log(res, Object.keys(res).length)
codePenアドレス
 
Setは、keyのセットであり、keyは重複しないため、Setにおいて、重複したkeyはない.
Setを作成する配列を入力します.この配列をリセットしたSetオブジェクトを返します.
 
reduce文法
 
arr.reduce(callback,[initialValue])
reduceは、配列中の各要素に対して順にコールバック関数を実行し、配列中の削除または未割り当ての要素を含まず、4つのパラメータを受け入れます.初期値(または前回のコールバック関数の戻り値)、現在の要素値、現在のインデックス、reduceの配列を呼び出します.
callback (           ,      )

    1、previousValue (           ,         (initialValue))
    2、currentValue (           )
    3、index (           )
    4、array (   reduce    )

initialValue (        callback       。)
作者:_豆タンクリンク:https://www.jianshu.com/p/e375ba1cfc47 出所:簡書簡書の著作権は著者の所有になります.いかなる形式の転載も作者に連絡して授権を得て、出所を明記してください.