前端祖传三件套JavaScript的ES6+之Set/Map

简介: 在现代前端开发中,JavaScript已经成为了不可或缺的语言。作为前端祖传三件套之一,它一直都在不断发展和进化。其中,ES6+是最受欢迎的版本之一,因为它引入了许多新功能和特性,能够更加方便有效地编写代码。本文将介绍其中之一的Set/Map。


  1. Set

Set是ES6+中的一个新类型,它类似于数组,但是可以确保没有重复的值。可以用来存储任意类型的数据,包括原始类型和对象。使用Set可以帮助我们更加方便地进行去重操作。

  • 创建Set
    在ES6+中,我们可以使用new关键字来创建一个Set。例如:
const set = new Set();
  • 这里创建了一个空的Set。
  • 添加元素
    在ES6+中,我们可以使用add方法向Set中添加元素。例如:
const set = new Set();
set.add(1);
set.add('Hello');
set.add({ name: 'Alice', age: 20 });
console.log(set); // Set { 1, 'Hello', { name: 'Alice', age: 20 } }
  • 这里向Set中添加了整数1、字符串'Hello'和一个对象{ name: 'Alice', age: 20 }。
  • 删除元素
    在ES6+中,我们可以使用delete方法从Set中删除元素。例如:
const set = new Set([1, 2, 3]);
set.delete(1);
console.log(set); // Set { 2, 3 }
  • 这里从Set中删除了整数1。
  • 判断元素是否存在
    在ES6+中,我们可以使用has方法来判断Set中是否存在某个元素。例如:
const set = new Set(['apple', 'banana', 'orange']);
console.log(set.has('apple')); // true
console.log(set.has('watermelon')); // false
  • 这里判断Set中是否存在字符串'apple'和'watermelon'。
  1. Map

Map是ES6+中的另一个新类型,它类似于对象,但是键不仅仅限于字符串,可以是任意类型的数据。使用Map可以帮助我们更加方便地进行键值对操作。

  • 创建Map
    在ES6+中,我们可以使用new关键字来创建一个Map。例如:
const map = new Map();
  • 这里创建了一个空的Map。
  • 添加元素
    在ES6+中,我们可以使用set方法向Map中添加元素。例如:
const map = new Map();
map.set('name', 'Alice');
map.set('age', 20);
map.set({ gender: 'female' }, 'gender');
console.log(map); // Map { 'name' => 'Alice', 'age' => 20, { gender: 'female' } => 'gender' }
  • 这里向Map中添加了字符串'name'、整数20和一个对象{ gender: 'female' }。
  • 获取元素
    在ES6+中,我们可以使用get方法来获取Map中的元素。例如:
const map = new Map();
map.set('name', 'Alice');
map.set('age', 20);
console.log(map.get('name')); // 'Alice'
console.log(map.get('gender')); // undefined
  • 这里获取了Map中键为'name'和'gender'的值。
  • 删除元素
    在ES6+中,我们可以使用delete方法从Map中删除元素。例如:
const map = new Map([
  ['name', 'Alice'],
  ['age', 20]
]);
map.delete('name');
console.log(map); // Map { 'age' => 20 }
  • 这里从Map中删除了键为'name'的元素。

总结

通过本文的介绍,我们了解了JavaScript中的两个新类型Set和Map

目录
打赏
0
0
0
0
171
分享
相关文章
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
96 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
25天前
|
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
40 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
springboot解决js前端跨域问题,javascript跨域问题解决
本文介绍了如何在Spring Boot项目中编写Filter过滤器以处理跨域问题,并通过一个示例展示了使用JavaScript进行跨域请求的方法。首先,在Spring Boot应用中添加一个实现了`Filter`接口的类,设置响应头允许所有来源的跨域请求。接着,通过一个简单的HTML页面和jQuery发送AJAX请求到指定URL,验证跨域请求是否成功。文中还提供了请求成功的响应数据样例及请求效果截图。
springboot解决js前端跨域问题,javascript跨域问题解决
JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用
本文深入讲解了 JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用。
102 5
JavaScript前端路由的实现原理及其在单页应用中的重要性,涵盖前端路由概念、基本原理、常见实现方式
本文深入解析了JavaScript前端路由的实现原理及其在单页应用中的重要性,涵盖前端路由概念、基本原理、常见实现方式(Hash路由和History路由)、优点及挑战,并通过实际案例分析,帮助开发者更好地理解和应用这一关键技术,提升用户体验。
142 1
聊聊 Go 语言中的 JSON 序列化与 js 前端交互类型失真问题
在Web开发中,后端与前端的数据交换常使用JSON格式,但JavaScript的数字类型仅能安全处理-2^53到2^53间的整数,超出此范围会导致精度丢失。本文通过Go语言的`encoding/json`包,介绍如何通过将大整数以字符串形式序列化和反序列化,有效解决这一问题,确保前后端数据交换的准确性。
86 4
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
363 14
前端大模型应用笔记(一):两个指令反过来说大模型就理解不了啦?或许该让第三者插足啦 -通过引入中间LLM预处理用户输入以提高多任务处理能力
本文探讨了在多任务处理场景下,自然语言指令解析的困境及解决方案。通过增加一个LLM解析层,将复杂的指令拆解为多个明确的步骤,明确操作类型与对象识别,处理任务依赖关系,并将自然语言转化为具体的工具命令,从而提高指令解析的准确性和执行效率。
118 6

热门文章

最新文章

  • 1
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    8
  • 2
    从前端视角聊聊通义灵码使用经验,如何更好地提升研发效率
    13
  • 3
    巧用通义灵码,提升前端研发效率
    16
  • 4
    详解智能编码在前端研发的创新应用
    5
  • 5
    VSCode AI提效工具,通义灵码前端开发体验
    29
  • 6
    大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
    5
  • 7
    课程预告|前端开发者如何用好通义灵码,这份实战指南请查收
    7
  • 8
    以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
    9
  • 9
    【01】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-优雅草卓伊凡拟开发一个一站式家政服务平台-前期筹备-暂定取名斑马家政软件系统-本项目前端开源-服务端采用优雅草蜻蜓Z系统-搭配ruoyi框架admin后台-全过程实战项目分享-从零开发到上线
    10
  • 10
    无前端经验如何快速搭建游戏站:使用 windsurf 从零到上线的详细指南
    10
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等