ES6——Set集合和Map集合练习题

根据前一篇文章,让ai给我们出下面的练习题:

Set 练习题

  1. 创建一个 Set 并添加数字 1 到 10,然后将其转换为数组并打印。
  2. 编写一个函数,接收一个数组作为参数,返回一个新的数组,新数组只包含原数组中唯一的元素(去重)。
  3. 创建一个 Set,添加多个元素,然后使用 delete 方法移除特定元素,打印剩余元素的数量。
  4. 使用 for...of 循环遍历一个 Set,打印每个元素。
  5. 将一个数组转换为 Set,然后添加一个新元素,再转换回数组,确保新元素位于数组末尾。

Map 练习题

  1. 创建一个 Map,包含键值对 'name': 'John''age': 30,然后使用 set 方法添加新的键值对 'city': 'New York'
  2. 编写一个函数,接收一个对象和一个键名,如果该键存在于 Map 中,则返回其值,否则返回一个错误消息。
  3. 创建一个 Map,然后使用 has 方法检查特定键是否存在。
  4. 使用 clear 方法清空一个 Map,然后检查 size 属性确认所有元素已被移除。
  5. 使用 for...of 循环遍历一个 Map,打印每个键和值。

解构练习题

  1. 解构一个数组 [1, 2, 3],使得第一个元素存储在变量 first 中,第二个元素存储在变量 second 中。
  2. 解构一个对象 {x: 10, y: 20},使得 x 存储在变量 width 中,y 存储在变量 height 中。
  3. 解构一个字符串 "hello",使得每个字符存储在单独的变量中。
  4. 解构一个 Map 的键值对,其中键名为 'name',值为 'Alice'
  5. 解构一个函数的返回值,该函数返回一个包含两个元素的数组,这两个元素分别是 xy 的值。

代码如下:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body></body></html>
<script>//### Set 练习题console.log("Set:");// 1. 创建一个 Set 并添加数字 1 到 10,然后将其转换为数组并打印。console.log("First Question:");let set = new Set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);let setArray = Array.from(set);console.log(setArray);// 2. 编写一个函数,接收一个数组作为参数,返回一个新的数组,新数组只包含原数组中唯一的元素(去重)。console.log("Second Question:");function SetSecond(A) {let set = new Set();for (let i of A) {set.add(i);}let setArray = Array.from(set);return setArray;}let array = [3, 1, 55, 6, 3, 55, 20];console.log(SetSecond(array));// 3. 创建一个 Set,添加多个元素,然后使用 `delete` 方法移除特定元素,打印剩余元素的数量。console.log("THird Question:");function SetThird() {let set = new Set();set.add(2);set.add(3);set.add(5);set.add(1);set.delete(2);console.log(set.size);}SetThird();// 4. 使用 `for...of` 循环遍历一个 Set,打印每个元素。console.log("Fourth Question:");for (let i of set) {console.log(i);}// 5. 将一个数组转换为 Set,然后添加一个新元素,再转换回数组,确保新元素位于数组末尾。console.log("Fifth Question:");function FifthQuestion() {let array = [3, 5, 3, 7, 7, 8];let set = new Set();for (let i of array) {set.add(i);}set.add(2);array = Array.from(set);console.log(array);}FifthQuestion();console.log();// ### Map 练习题console.log("Map:");// 1. 创建一个 Map,包含键值对 `'name': 'John'` 和 `'age': 30`,然后使用 `set` 方法添加新的键值对 `'city': 'New York'`。console.log("First Question:");let map = new Map([['name', 'John'],['age', 18]]);map.set('city', 'New York');console.log(map);// 2. 编写一个函数,接收一个对象和一个键名,如果该键存在于 Map 中,则返回其值,否则返回一个错误消息。console.log("Second Question:");function SecondQuestion(Object, keyName) {for(let[key, value] of Object) {if (key == keyName) {return value;}}return false;}console.log(SecondQuestion(map,'name'));console.log(SecondQuestion(map,'play'));// 3. 创建一个 Map,然后使用 `has` 方法检查特定键是否存在。console.log("Third Question:");let map1 = new Map([['name', 'xiaoming'],['age', 19]]);console.log(map1.has('name'));// 4. 使用 `clear` 方法清空一个 Map,然后检查 `size` 属性确认所有元素已被移除。console.log("Fourth Question:");map1.clear();console.log(map1.size);// 5. 使用 `for...of` 循环遍历一个 Map,打印每个键和值。console.log("Fifth Question:");for(let [key, value] of map) {console.log(key, value);}console.log();// ### 解构练习题// 1. 解构一个数组 `[1, 2, 3]`,使得第一个元素存储在变量 `first` 中,第二个元素存储在变量 `second` 中。console.log("First Question:");let [first, second, third] = [1,2,3];console.log("First:", first, " Second:", second);// 2. 解构一个对象 `{x: 10, y: 20}`,使得 `x` 存储在变量 `width` 中,`y` 存储在变量 `height` 中。console.log("Second Question:");let obj = {x:10,y:20};let {x:width, y:height} = obj;console.log("width:", width, " height:", height);// 3. 解构一个字符串 `"hello"`,使得每个字符存储在单独的变量中。console.log("Third Question:");let [a,b,c,d,e] = "hello";console.log(e,d,c,b,a);// 4. 解构一个 Map 的键值对,其中键名为 `'name'`,值为 `'Alice'`。console.log("Fourth Question:");let map2 = new Map([['name', 'Alice']]);let [name, Alice] = map2;console.log("map:", name, Alice);// 5. 解构一个函数的返回值,该函数返回一个包含两个元素的数组,这两个元素分别是 `x` 和 `y` 的值。console.log("Fifth Question:");function Fifth() {return {x:10, y:20};}let {x, y} = Fifth();console.log(x,y);
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/872587.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

美式键盘 QWERTY 布局的起源

注&#xff1a;机翻&#xff0c;未校对。 The QWERTY Keyboard Is Tech’s Biggest Unsolved Mystery QWERTY 键盘是科技界最大的未解之谜 It’s on your computer keyboard and your smartphone screen: QWERTY, the first six letters of the top row of the standard keybo…

基于计算机视觉的工地钢筋计数

手动钢筋计数是一项耗时的任务&#xff0c;而且容易出错和不一致。但是&#xff0c;你可以使用计算机视觉自动进行钢筋计数。你可以使用经过微调的计算机视觉模型来计算单个钢筋&#xff0c;这对于构建库存管理和质量验证系统非常有用 在这篇博文中&#xff0c;我们将学习如何…

生成树(STP)协议

一、生成树的技术背景 1、交换机单线路上链,存在单点故障,上行线路及设备都不具备冗余性,一旦链路或上行设备发生故障,网络将面临断网。 总结:以下网络不够健壮,不具备冗余性。 2、因此引入如下网络拓扑结构: 上述冗余拓扑能够解决单点故障问题,但同时冗拓扑也带来了…

【Godot4.2】MLTag类:HTML、XML通用标签类

概述 HTML和XML采用类似的标签形式。 之前在Godot中以函数库形式实现了网页标签和内容生成。能用&#xff0c;但是缺点也很明显。函数之间没有从属关系&#xff0c;但是多有依赖&#xff0c;而且没有划分出各种对象和类型。 如果以完全的面向对象形式来设计标签类或者元素类…

opencv学习:图像视频的读取截取部分图像数据颜色通道提取合并颜色通道边界填充数值计算图像融合

一、计算机眼中的图像 1.图像操作 构成像素点的数字在0~255之间 RGB叫做图像的颜色通道 h500&#xff0c;w500 2.灰度图像 3. 彩色图像 4.图像的读取 5.视频的读取 cv2.VideoCapture()--在OpenCV中&#xff0c;可以使用VideoCapture来读取视频文件&#xff0c;或是摄像头数…

Android11 设置一个默认密码 万能密码

在忘记密码的时候可以解锁和重置密码 密码分为 pin password pattern 思路&#xff1a;在设置密码的时候&#xff0c;保存密码到系统。在输入这个万能密码就取出保存的密码&#xff0c;替换到系统中去解锁。 万能密码只是一个判断作用&#xff0c;解锁的密码还是用户设置的密…

华为USG6000V防火墙安全策略用户认证

目录 一、实验拓扑图 二、要求 三、IP地址规划 四、实验配置 1&#x1f923;防火墙FW1web服务配置 2.网络配置 要求1&#xff1a;DMZ区内的服务器&#xff0c;办公区仅能在办公时间内(9:00-18:00)可以访问&#xff0c;生产区的设备全天可以访问 要求2&#xff1a;生产区不…

qiankun子应用vue加载js资源失效问题解决

在使用qiankun插件如果同一个基座对应不同的微应用时&#xff0c;此时子应用中需要引入某个外部js资源&#xff0c;单独访问子应用时没有问题&#xff0c;但是如果通过基座访问子应用时则在index.js 通过src引入的外部js文件就会不生效&#xff0c;此时可以在setup 中创建scrip…

集群架构-web服务器(接入负载均衡+数据库+会话保持redis)--15454核心配置详解

紧接着前面的集群架构深化—中小型公司&#xff08;拓展到大型公司业务&#xff09;–下面图简单回顾一下之前做的及故障核心知识总结&#xff08;等后期完全整理后&#xff0c;上传资源希望能帮大家&#xff09; web集群架构-接入负载均衡部署web02服务器等 web集群-搭建web0…

如何使用unittest框架来编写和运行单元测试

Python 的 unittest 框架是用于编写和运行可重复的测试的一个强大工具。它允许你定义测试用例、测试套件、测试运行器和测试固件&#xff08;fixtures&#xff09;&#xff0c;从而系统化地测试你的代码。以下是如何使用 unittest 框架来编写和运行单元测试的基本步骤&#xff…

拒绝废话:computed、watch和methods的区分和使用场景

computed、watch和methods是用于处理数据和响应数据变化的不同方式&#xff0c;三者之间有什么不同呢&#xff0c;贝格前端工场作为10年前端老司机&#xff0c;用浅显的语言给大家分享一下。 computed&#xff1a; computed属性是用来定义一个基于依赖的响应式属性。它会根据…

javascript this

js中的this有四种执行情况 作为构造函数执行 function Constructer (name) {this.name name; } const construct new Constructer(测试); console.log(construct.name); //思考一下new的过程中发生了什么&#xff1f;作为对象函数执行 const obj {name: 测试,logs: funct…

OrangePi 学习摘录

文章目录 1. 参考2. 开发板 Orange-Pi-CM4 预览3. 烧录 Linux 镜像到 TF 卡中4. 制作桌面版镜像qemu/chroot 5. Armbian6. 编译 1. 参考 淘宝 香橙派官网 Orange-Pi-3B Orange-Pi-CM4 基于docker构建香橙派zero系统构建环境 2. 开发板 Orange-Pi-CM4 预览 3. 烧录 Linux 镜像…

微信小程序基本语法

官网 https://developers.weixin.qq.com/miniprogram/dev/framework/ 视频教程&#xff1a;尚硅谷微信小程序开发教程&#xff0c;2024最新微信小程序项目实战&#xff01; 仿慕尚花坊项目源码&#xff1a;https://gitee.com/abcdfdewrw/flower-workshop 目录 一&#xff0c;初…

【深度学习】BeautyGAN: 美妆,化妆,人脸美妆

https://www.sysu-hcp.net/userfiles/files/2021/03/01/3327b564380f20c9.pdf 【深度学习】BeautyGAN: Instance-level Facial Makeup Transfer with Deep Generative Adversarial Network BeautyGAN: Instance-level Facial Makeup Transfer with Deep Generative Adversaria…

交叉编译ethtool(ubuntu 2018)

参考文章&#xff1a;https://www.cnblogs.com/nazhen/p/16800427.html https://blog.csdn.net/weixin_43128044/article/details/137953913 1、下载相关安装包 //ethtool依赖libmul git clone http://git.netfilter.org/libmnl //ethtool源码 git clone http://git.kernel.or…

国家护网行动面试题总结

一、信息收集流程 1.获取域名的 whois 信息 , 获取注册者邮箱姓名电话等。 2.通过站长之家、明小子、 k8 、站长之家等查询服务器旁站以及子域名站点&#xff0c;因为主站一般 比较难&#xff0c;所以先看看旁站有没有通用性的 cms 或者其他漏洞。 3、通过 DNS 域传送…

PriorityQueue 阅读记录

1、前言 1、优先队列&#xff0c;底层通过数组来构造树&#xff08;二叉树) 来实现的。 2、默认是最小堆&#xff08;取出来的是最小值)&#xff0c;可以通过传入一个比较器 comparator 来构造一个最大堆。 3、传入的参数不能为空&#xff0c;否则抛出NPE问题。 4、最大堆的…

Study--Oracle-07-ASM自动存储管理(一)

一、ASM实例和数据库实例对应关系 1、ASM是Oracle 10g R2中为了简化Oracle数据库的管理而推出来的一项新功能&#xff0c;这是Oracle自己提供的卷管理器&#xff0c;主要用于替代操作系统所提供的LVM&#xff0c;它不仅支持单实例&#xff0c;同时对RAC的支持也是非常好。ASM可…

汽车开发阶段(OTS/VFF/PVS/OS/SOP)

OTS&#xff1a;即英语中的Off Tooling Sample&#xff0c;通常被称为工装样件。它指的是通过配套设备、工装夹具以及模具制造出来的样品&#xff0c;但并不强调生产的时间效率&#xff0c;主要用于验证产品的设计能力。 VFF&#xff1a;在德语中表示为Vorserien Freigabefahr…