系列文章——字符串求取出现次数及元素本身
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
.box {
width: 800px;
height: 500px;
border: 1px solid #ccc;
margin: 20px auto;
}
.box-title {
text-align: center;
}
.showList {
height: 290px;
width: 90%;
margin: 10px auto;
border: 1px solid #ccc;
overflow: auto;
}
</style>
</head>
<body>
<div class="box">
<h1 class="box-title">元素中出现最多次数</h1>
<div style="margin-left: 40px">
<label for="textTime">
输入字符串:
<input id="textTime" value="" placeholder="输入比较的内容" />
<button onclick="setFilter()">过滤</button>
<button onclick="deleteFilter()">清除</button>
</label>
</div>
<div>
<div class="showList">
<ol class="counts"></ol>
</div>
</div>
</div>
</body>
<script>
function maxStr(str) {
var obj = {};
var max = { item: [], count: 1 };
str.forEach((item) => {
obj[item] == undefined ? (obj[item] = 1) : obj[item]++;
});
for (var item of Object.entries(obj)) {
if (item[1] > max.count) {
max.item = [];
max.item.push(item[0]);
max.count = item[1];
} else if (item[1] == max.count && max.item.indexOf(item[0]) == -1) {
max.item.push(item[0]);
max.count = item[1];
}
}
return max.item + "出现了最多的次数,最多为" + max.count + "次.";
}
let showUl = document.querySelector(".counts");
function setFilter() {
var showData = document.getElementById("textTime").value.split("");
var li = document.createElement("li");
console.time("时间算法");
if (showData == "") {
alert("输入不可为空");
return;
}
li.innerHTML = maxStr(showData);
showUl.appendChild(li);
console.timeEnd("时间算法");
}
function deleteFilter() {
showUl.innerHTML = "";
document.getElementById("textTime").value = "";
}
</script>
</html>