js之Set和Map类使用
<script> //----------------------------------------------------Set---------------------- // Set(集合)是一组唯一值的集合。每个值只能在 Set 中出现一次。Set 可以容纳任何数据类型的值。 // 创建 Set const letters = new Set(["b", "a", "c"]); console.log(typeof letters); //object console.log(letters instanceof Set); //true // 将值添加到 Set,添加相等的元素,只有第一个会被保存 letters.add("d"); letters.add("d"); console.log(letters); //Set(4) {'b', 'a', 'c', 'd'} // 列出所有条目 let text = ""; letters.forEach(function (value) { text += value; }); console.log(text); //bacd // values() 方法返回包含 Set 中所有值的 Iterator 对象,使用 Iterator 对象访问元素。 // Set 没有键。keys() 返回与 values() 相同的结果。entries() 方法返回的是 [value,value] 值值对,而不是 [key,value] 键值对 text = ""; for (const entry of letters.values()) { text += entry; } console.log(text); //bacd text = ""; for (const entry of letters.entries()) { text += entry; } console.log(text); //b,ba,ac,cd,d //has() 如果值存在则返回 true。 delete() 从 Set 中移除元素。 if (letters.has("a")) letters.delete("a"); console.log(letters); //Set(3) {'b', 'c', 'd'} //size 返回 Set 中元素的数量。 console.log(letters.size); //3 //clear() 从 Set 中移除所有元素。 letters.clear(); console.log(letters); //Set(0) {size: 0} console.log(letters.size); //0 //----------------------------------------------------Map------------------------ // Map 保存键值对,其中键可以是任何数据类型。Map 会记住键的原始插入顺序。Map 提供表示映射大小的属性。 const fruits = new Map([ ["apples", 500], ["bananas", 300], ["oranges", 200], ]); console.log(typeof fruits); //object console.log(fruits instanceof Map); //true //set() 为 Map 中的键设置值。get() 获取 Map 对象中键的值。 fruits.set("lemons", 400); fruits.set("lemons", 100); console.log(fruits); //Map(4) {'apples' => 500, 'bananas' => 300, 'oranges' => 200, 'lemons' => 100} console.log(fruits.get("lemons")); //100 // 列出所有条目 text = ""; fruits.forEach(function (value) { text += value; }); console.log(text); //500300200100 // values() 方法返回包含 Map 中所有值的 Iterator 对象,使用 Iterator 对象访问元素。 // Map 没有键。keys() 返回与 values() 相同的结果。entries() 方法返回的是 [value,value] 值值对,而不是 [key,value] 键值对 text = ""; for (const entry of fruits.keys()) { text += entry; } console.log(text); //applesbananasorangeslemons text = ""; for (const entry of fruits.entries()) { text += entry; } console.log(text); //apples,500bananas,300oranges,200lemons,100 //has() 如果值存在则返回 true。 delete() 从 Map 中移除元素。 if (fruits.has("apples")) fruits.delete("apples"); console.log(fruits); //Map(3) {'bananas' => 300, 'oranges' => 200, 'lemons' => 100} //size 返回 Map 中元素的数量。 console.log(fruits.size); //3 //clear() 从 Map 中移除所有元素。 fruits.clear(); console.log(fruits); //Map(0) {size: 0} console.log(fruits.size); //0 </script>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix