想到之前面試過的一條面試題。就是求出頁面中出現次數最多 的標簽,並求出最大值。因為出現最多 的標簽可能是同時存在多個相同。比如span和div都是出現10次並且是最大值,
所以把出現標簽用放到數組里面去。。寫下個人的解決方法。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- <meta http-equiv="X-UA-Compatible" content="ie=edge"> --> <title>求出頁面中出現次數最多的標簽</title> </head> <body> <span></span> <span></span> <span></span> <div> <div> sdf </div> </div> <div></div> </body> <script> var element = document.getElementsByTagName("*");//獲取所有標簽 var obj = {}, max = 0, maxArr = []; for (var index = 0; index < element.length; index++) { if (!obj[element[index].tagName]) obj[element[index].tagName] = 1;//如何Obj沒有這個標簽的屬性則為1 else obj[element[index].tagName]++;//否則就++ } ///循環一遍obj求出最大值 for (const key in obj) { // 頁面中可能 有多個相同多的最大值標簽 if (obj[key] == max) { maxArr.push(key) } // 出現最多次數時 if (obj[key] > max) { max = obj[key]; maxArr = []; maxArr.push(key) } } console.log('頁面中出現最多的標簽是maxArr里面的幾個值,出現次數是' + max) </script> </html>
上面的結果maxArr是['SPAN','DIV']。
其實這種題目和求一個字符串中出現最多的字符和次數都是一樣原理