首页 > 其他分享 >ES6——Set集合和Map集合练习题

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

时间:2024-07-17 13:54:31浏览次数:16  
标签:ES6 Set console log Map set let 集合

根据前一篇文章,让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>

标签:ES6,Set,console,log,Map,set,let,集合
From: https://blog.csdn.net/weixin_72939806/article/details/140487414

相关文章

  • ES6基本语法(三)——Set集合和Map集合
    Set集合和拓展运算符Set集合Set是JavaScript中的一种数据结构,用于存储唯一值的集合。以下是Set集合的一些方法和操作的示例://创建一个空Set集合letfruits=newSet();//创建一个有初始值的Set集合letfruits1=newSet([1,2,3]);//添加元素frui......
  • MATLAB程序复现-基于多面体不确定集合的电力系统灵活性量化评估方法
    摘要:随着风电、光伏等新能源接入比例的不断提高,源荷不确定性的上升扩大了电力系统的运行灵活性需求。为准确量化电力系统的灵活性需求,制定兼顾灵活性与经济性的优化方案,提出了一种基于多面体不确定集合的电力系统灵活性量化评估方法。首先,采用多面体不确定集合量化多个光伏电站......
  • setState异步更新数据导致的问题
    背景子组件使用ProDescriptions组件,通过传入columns和request构建列表。<Modalopen={visible}><ProDescriptionscolumns={columnsasany}request={getTableRequestasany}/></Modal>父组件通过调用子组件useImperativeHandle提供的方法,改......
  • Setup Babel ES6 for Express and Nodejs
    Createprojectandinstalldependenciesmkidrmy-app&&cdmy-appnpminit-ynpmi-D@babel/cli@babel/core@babel/node@babel/preset-envnpmiexpresssCreate.babelrc{"presets":["@babel/preset-env"]}Writeawebs......
  • es6.8.5集群部署(tsl认证)
    环境:OS:Centos7es:6.8.5节点1:192.168.1.101节点2:192.168.1.104节点3:192.168.1.105 ######################################每个节点安装es#####################1.创建中间件安装目录和数据文件、日志文件目录[root@essoft]#mkdir-p/usr/local/services[root@essof......
  • [ABC347E] Set Add Query题解
    思路通过读题发现,每个数变化当且仅当这个数在集合内。所以不妨设它被添加进来的时间点为\(L_i\),它被删除的时间点为\(R_i\),所以它被增加的数量就是这段时间内集合数量之和。所以用一个变量\(cnt\)模拟当前集合内有多少个数,前缀和维护即可。具体实现参见代码。代码#include<......
  • Solution Set - NOI真题
    NOI2024RP++!NOI2021Day1T1Link&Submission.对整棵树做轻重链剖分。每一次修改,找到轻标记边集合中涉及到该路径的边删掉。然后,拿出重链上的所有轻边和重链。,把重链上除了底部的点全部标记为“到重儿子的边是标记边”,把所有轻边加入轻标记边集合。每一次查询,查询重链上有多少个......
  • setfacl设置权限与chomd设置权限区别
    setfacl和chmod都是用于设置Linux系统中文件和目录权限的命令,但它们之间存在一些关键区别:基本权限vs.访问控制列表(ACL):chmod:用于设置文件或目录的基本权限,这些权限分为用户(user)、用户组(group)和其他(others)三类。你可以设置读(r)、写(w)和执行(x)权限。chmod......
  • 集合框架之List
    目录1.什么是UML?2.集合框架3.List集合1.特点 有序 不唯一 2.遍历方式 for下标 foreach 迭代器 3.删除 for循环正向删除for循环逆向删除迭代器删除(推荐)4.迭代器原理5.泛型6.ArrayList、LinkedList和Vector的区别、1.ArrayList和LinkedList的区别......
  • 解决 React 中 setInterval 无法更新状态的问题:长按加速的实现
    解决React中setInterval无法更新状态的问题:长按加速的实现在开发React应用时,我们经常会遇到需要定时更新组件状态的场景。setInterval是一个常用的定时器函数,但在React中使用它时,可能会遇到状态无法更新的问题。今天,我们就来深入探讨一下这个问题,并通过一个长按加速的例......