javascript 的 set 适合标签云去重存储,自动过滤重复字符串;添加时可标准化大小写;配合渲染函数实时更新 dom;需计数时可用 map 配合 set 实现频次统计。

用 JavaScript 的 Set 实现标签云的不重复数据存储,核心在于利用其自动去重特性——相同字符串(或值)只会存一份,天然适合管理标签这类需要唯一性的数据。
直接用 Set 存储标签字符串
Set 本身不关心数据类型,只要标签是字符串(最常见情况),直接添加即可自动去重:
- 创建空 Set:
const tags = new Set(); - 添加标签:
tags.add("前端"); tags.add("JavaScript"); tags.add("前端");→ 第二个 "前端" 不会重复存入 - 转为数组渲染:
[...tags]或Array.from(tags),得到["前端", "JavaScript"]
支持大小写敏感或忽略的灵活处理
默认情况下,"Vue" 和 "vue" 被视为不同标签。如需统一,插入前先标准化:
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
- 统一转小写:
tags.add(tag.toLowerCase()); - 或统一首字母大写:
tags.add(tag.charAt(0).toUpperCase() + tag.slice(1).toLowerCase()); - 注意:标准化逻辑必须在每次
add()前执行,否则无法保证去重效果
配合 DOM 实时更新标签云
把 Set 当作数据源,动态同步到页面:
- 封装一个更新函数:
function renderTagCloud() { const container = document.getElementById("tag-cloud"); container.innerHTML = ""; for (const tag of tags) { const span = document.createElement("span"); span.textContent = tag; container.appendChild(span); } } - 每次增删后调用:
tags.add("React"); renderTagCloud(); - 删除标签也简单:
tags.delete("JavaScript");,再重新渲染
扩展:带计数的标签云(用 Map 配合 Set)
如果需要统计每个标签出现次数(比如按热度排序),Set 本身不存数量,可搭配 Map:
- 用
Map存标签→次数:const tagCount = new Map(); - 添加时更新计数:
tagCount.set(tag, (tagCount.get(tag) || 0) + 1); - 去重仍靠逻辑控制(比如只允许存在 key),或用
Set单独维护标签名列表,Map管理频次
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










