JavaScript中解锁Map和Set的力量

这篇具有很好参考价值的文章主要介绍了JavaScript中解锁Map和Set的力量。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🧑‍🎓 个人主页:《爱蹦跶的大A阿》

🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》

JavaScript中解锁Map和Set的力量,JavaScript保姆级教程,javascript,前端,开发语言​ 

JavaScript中解锁Map和Set的力量,JavaScript保姆级教程,javascript,前端,开发语言

✨ 前言

        ES6带来了Map和Set两个新的数据结构 - 它们分别用于存放键值对和唯一值。Map和Set提供了更优雅和高效的存取与操作数据的方式。本文将全面解析Map和Set的用法及应用场景,助你提升JavaScript数据处理能力。

JavaScript中解锁Map和Set的力量,JavaScript保姆级教程,javascript,前端,开发语言

第一节:Map概述

Map是ES6新增的一种键值对集合,类似于Object。区别在于:

  • Map的键可以是任意类型,Object的键只能是字符串或符号。
  • Map的大小可以直接获取,Object则需手动计算。
  • Map有更多方便的方法,如size、clear等。

Map提供了对键值对的存储与操作,键的顺序也得到保留。

第二节:创建和初始化Map

可以通过构造函数创建Map:

let map = new Map();

Map可以接受数组做为参数,进行初始化:

new Map([
  ['key1', 'val1'],
  ['key2', 'val2'], 
]);

 也可以链式调用set方法初始化:

new Map()
  .set('a', 1)
  .set('b', 2);

第三节:Map的基本操作

  • set(key, val) 添加元素
  • get(key) 通过键查找值
  • has(key) 判断键是否存在
  • delete(key) 通过键删除元素
  • clear() 清空所有元素

Map使键值对的操作更简洁直观。后面将介绍Map的遍历等高级用法。

 

第四节:遍历Map

常用的Map遍历方式:

  • keys() - 遍历键名
  • values() - 遍历键值
  • entries() - 遍历键值对
  • forEach() - 遍历回调函数

示例:

let map = new Map([[1, 'a'], [2, 'b']]);

for (let key of map.keys()) {
  // ...
}

for (let value of map.values()) {
  // ...
}

for (let [key, value] of map.entries()) {
  // ...
}

map.forEach(function(value, key) {
  // ...
})

第五节:WeakMap

WeakMap与Map的区别:

  • WeakMap只接受对象作为键名
  • WeakMap的键名所指向的对象不计入GC ROOT
  • WeakMap不可遍历

WeakMap使用场景:

  • 作为对象的元数据储存
  • 缓存数据

第六节:Set的概述

Set是一种包含唯一值的集合,可以高效地对值进行操作。

Set具有以下特点:

  • 成员值唯一,没有重复值
  • 值的顺序不重要,也不能索引
  • 支持高效的查找、删除操作

第七节:创建和初始化Set

可以通过构造函数创建Set:

let set = new Set();

也可以传入数组或者iterable对象进行初始化: 

new Set([1, 2, 3]);

new Set('hello');

第八节:Set的基本操作

  • add(value) 添加元素
  • delete(value) 删除元素
  • has(value) 检查是否存在
  • clear() 清空所有元素

Set使得处理唯一值更简单。

第九节:遍历Set

  • keys() 返回键名的迭代器
  • values() 返回键值的迭代器
  • entries() 返回键值对的迭代器
  • forEach() 遍历回调函数

示例:

 

let set = new Set([1, 2]);

for (let key of set.keys()) {
  // ...
}

for (let value of set.values()) {
  // ... 
}

set.forEach(function(value) {
  // ...
})

第十节:WeakSet

WeakSet与Set的区别:

  • 只接受对象作为成员
  • 对象不计入垃圾回收机制中
  • 不可遍历

使用场景:存储DOM节点,不会泄漏内存。

Map和Set大大提高了数据处理能力,了解其用法可以使代码更简洁优雅。

 

第十一节:Map的应用

  • 作为对象的替代,当键需要非字符串时
const map = new Map();
map.set(obj, value);
  • 存储键值对数据集合
  • 映射关系表
  • 频率表记录出现次数
  • 缓存数据

第十二节:Set的应用

  • 去重数组
const set = new Set(arr);
  • 交集、并集、差集运算
  • 删除数组重复值
[...new Set(arr)]
  • 测试值是否存在于某集合
  • 存储不重复数据,如Tags

Map和Set拓展了数据处理能力,在数据操作方面有很多实际应用,值得我们深入学习。

✨ 结语

  • Map用于存储键值对,键可以是任意类型。
  • Set用于存储唯一值,没有重复值。
  • Map和Set都可以高效地增删查找。
  • Map支持按插入顺序遍历,Set不保证顺序。
  • WeakMap和WeakSet用于存储对对象的弱引用。
  • Map和Set在处理数据时有许多应用场景。

要点:

  • 理解Map与Object、Set与Array的区别
  • 掌握各自的初始化、增删查API
  • 合理运用Map或Set,不要滥用
  • WeakMap和WeakSet用于特定场景
  • 多在实际中练习 Map和Set的应用

        Map和Set提供了更优雅高效的 JavaScript 数据处理能力,值得我们深入学习,并合理运用到实际项目中。

        这就是本文的全部内容了。如果对Map和Set的使用还有任何疑问,欢迎在评论区留言讨论!

JavaScript中解锁Map和Set的力量,JavaScript保姆级教程,javascript,前端,开发语言文章来源地址https://www.toymoban.com/news/detail-796298.html

到了这里,关于JavaScript中解锁Map和Set的力量的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【面试题】详解JavaScript中的Map()

     前端面试题库 ( 面试必备)              推荐:★★★★★ 地址:前端面试题库 JavaScript是一种动态、解释性的编程语言,用于开发web上的动态页面和交互式应用程序。与其他编程语言相比,JavaScript拥有更加灵活的内置数据类型,并且拥有更高级别的调试和错误处理工

    2024年02月11日
    浏览(45)
  • 【JavaScript】JS——Map数据类型

    存储键值对的对象。 能够记住键的原始插入顺序 任何值(对象或原始值)都可以作为键或值。 Map中的一个键 只能出现一次 ,新的值会覆盖旧的值。 迭代方式:for…of循环,返回一个 [key,value] 的数组。 键的相等:基于零值相等比较 Map与Object的比较 Map默认不包含任何键。

    2024年02月04日
    浏览(47)
  • JavaScript -- Map对象及常用方法介绍

    Map用来存储键值对结构的数据**(key-value)** Object中存储的数据就可以认为是一种 键值对结构 Map和Object的主要区别: Object中的属性名只能是 字符串或符号 ,如果传递了一个其他类型的属性名,JS解释器会自动将其 转换为字符串 Map中任何类型的值都可以成为数据的key map.si

    2024年02月10日
    浏览(50)
  • 【JavaScript精通之道】掌握数据遍历:解锁现代化遍历方法,提升开发效率!

    ​ 🎬 岸边的 风 :个人主页  🔥  个人专栏  :《 VUE 》 《 javaScript 》 ⛺️  生活的理想,就是为了理想的生活 ! ​ 目录  📚 前言  📘 1. reduce方法 📘 2. forEach方法 📘 3. map方法  📘 4. for循环 📘 5. filter方法 📘 6. for...of循环 📘 7. Object.keys方法 📘 8. Object.values方法 📘

    2024年02月10日
    浏览(46)
  • JavaScript中Map与JSON之间转换

    使用 Object.fromEntries() 方法将Map转为对象; JSON.stringify() 是将对象转为json字符串; 如果是JSON字符串必须使用JSON.parse()转为对象; 使用 Object.entries() 接受对象返回二维数组; 调用Map()构造函数

    2024年02月15日
    浏览(39)
  • JavaScript /react 中new Map的用法

    size属性 : size属性返回Map结构的成员总数。 set(key, value) : set方法设置key所对应的键值,然后返回整个Map结构。如果key已经有值,则键值会被更新,否则就新生成该键。 get(key) get方法读取key对应的键值,如果找不到key,返回undefined。 has(key) has方法返回一个布尔值,表示某个键

    2024年03月15日
    浏览(54)
  • 【深入探讨】JavaScript 中的 forEach 和 map 区别

    🐱 个人主页: 不叫猫先生 ,公众号: 前端Clodplay 🙋‍♂️ 作者简介:前端领域优质作者、阿里云专家博主,共同学习共同进步,一起加油呀! ✨优质专栏:VS Code插件开发极速入门 📢 资料领取:前端进阶资料可以找我免费领取 map会返回一个新的数组,而forEach不会 。

    2024年04月28日
    浏览(36)
  • 奇舞周刊第497期:解锁 PDF 文件:使用 JavaScript 和 Canvas 渲染 PDF 内容

    记得点击文章末尾的“ 阅读原文 ”查看哟~ 下面先一起看下本期周刊 摘要 吧~  解锁 PDF 文件:使用 JavaScript 和 Canvas 渲染 PDF 内容 最近研究了 Web 的 FileSystemAccess Api,它弥补了 Web 长期以来缺少的能力:操作用户设备中的文件;而如今通过这个 Api 我们能够实现常见的文件

    2024年02月11日
    浏览(46)
  • JavaScript中的map()和forEach()方法有什么区别?

    聚沙成塔·每天进步一点点 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而

    2024年02月06日
    浏览(47)
  • JavaScript中手动实现Array.prototype.map方法

    在前端开发中,我们经常需要对数组进行操作和处理。在JavaScript中,数组是常用的数据类型之一。而数组的map方法可以将一个数组中的每个元素都进行某种操作,并返回一个新的数组。今天,我们就来手动实现JavaScript中数组原型的map方法。 首先,让我们回顾一下map方法的基

    2024年02月21日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包