Sunny-117/js-challenges

寻找出现次数最多的三个标签

Sunny-117 opened this issue · 2 comments

寻找出现次数最多的三个标签
CwRv07 commented

// 寻找当前页面中出现最多的三个标签

// 取所有元素(两种方法)
  const pageDomList = Array.from(document.all ?? document.querySelectorAll('*'));
// 哈希计数
  const domMap = new Map();
  pageDomList.forEach(dom => {
    domMap.set(dom.tagName, (domMap.get(dom.tagName) ?? 0) + 1);
  })
// 排序取前三输出
  const mapEntriesList=Array.from(domMap);
  mapEntriesList.sort((a,b)=>b[1]-a[1]);
  console.log(mapEntriesList.slice(0,3));
function findThree(){
    const doms = Array.from(document.querySelectorAll("*")).map(node => node.tagName);
    const map = new Map();
    for (const item of doms) {
        map.has(item) ? map.set(item, map.get(item) + 1) : map.set(item, 1);
    }
    return Array.from(map.entries()).sort((a, b) => b[1] - a[1]).slice(0, 3);
}