首页 > 其他分享 >js值Set和Map类使用

js值Set和Map类使用

时间:2023-07-26 15:57:39浏览次数:36  
标签:Map Set console log text js fruits

<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>

 

标签:Map,Set,console,log,text,js,fruits
From: https://www.cnblogs.com/caroline2016/p/17582665.html

相关文章

  • js校验IPv4/IPv6/域名/url等相关正则
    /***域名校验eg:www.baidu.com*@param{*}val需要校验的值*/exportfunctionisDomain(val){constreg=/^([0-9a-zA-Z-]{1,}\.)+([a-zA-Z]{2,})$/;returnreg.test(val);}/***ipv4校验eg:10.0.0.1*@param{*}val需要校验的值*/exportfunc......
  • Node.js低代码管理系统:只需点击鼠标,搭建属于你的企业应用
    低代码管理系统是一种通过可视化界面和简化的开发工具,使非专业开发人员能够快速构建和管理应用程序的系统。它提供了一套预先定义的组件和模块,使用户可以通过拖放操作来设计应用程序的界面和逻辑。低代码管理系统还提供了自动化的工作流程、数据管理和集成功能,使用户能够快速创建和......
  • EaselJS 源码分析系列--第四篇
    鼠标交互事件前几篇关注的是如何渲染,那么鼠标交互如何实现呢?Canvascontext本身没有像浏览器DOM一样的交互事件EaselJS如何在canvas内实现自己的鼠标事件系统?原理大致如下:Stage类内的canvas监听标准DOM鼠标事件(比如:mousedown),window或document对象下监听......
  • uni-app vue-cli命令行创建项目,拉取模板(dcloudio/uni-preset-vue)失败,443超时报错
    安装vue/clinpminstall-g@vue/cli问题根据官网提示,通过vue-cli命令行创建项目,出现如下报错。Fetchingremotepresetdcloudio/uni-preset-vue...ERRORFailedfetchingremotepresetdcloudio/uni-preset-vue:ERRORRequestError:connectETIMEDOUT192.30.25......
  • Redis的有序集合Zset为啥用跳表不用二叉树
    跳表和红黑树查找的时间复杂度都是logN,插入删除也是logN。范围查找貌似也都是O(k+logn),其中n是树中节点的数量,k是满足范围条件的节点数量。但是实现起来跳表要简单很多。1.zset有个很核心的操作叫范围查找,我们要查找某个范围区间的元素。跳表可以做到logN时间复杂度内的快......
  • Njs 0.8.0发布
    导读Njs0.8.0发布,分为nginx模块和核心进行介绍。nginx模块更改:删除了0.7.10版本中引入的FetchAPI中对禁止的头信息的特殊处理。更改:删除了http模块中自0.5.0以来废弃的r.requestBody()和r.responseBody()。更改:在http模块中过滤时,在r.internalRedirect()中抛出一......
  • 转载:PageOffice在线打开office文件通过js调用vba可实现的功能
    pageoffice封装的js接口有限,某些比较复杂的设置用到的客户不多,所以没有提供直接的js方法,但是pageoffice提供了Document属性和RunMacro方法,可以调vba或直接运行宏指令实现比较小众的一些需求   Word相关功能1、给word表格中的单元格赋值document.getElementById("Page......
  • Using PL/SQL Object Types for JSON
    #https://docs.oracle.com/en/database/oracle/oracle-database/12.2/adjsn/using-PLSQL-object-types-for-JSON.html#GUID-F0561593-D0B9-44EA-9C8C-ACB6AA9474EEDECLAREjeJSON_ELEMENT_T;joJSON_OBJECT_T;BEGINje:=JSON_ELEMENT_T.parse('{"name......
  • 学好Elasticsearch系列-Mapping
    本文已收录至Github,推荐阅读......
  • 30 天精通 RxJS (02):Functional Programming 基本观念
    FunctionalProgramming是Rx最重要的观念之一,基本上只要学会FP要上手Rx就不难了!FunctionalProgramming可以说是近年来的显学,各种新的函式编程语言推出之外,其他旧有的语言也都在新版中加强对FP的支持!什么是FunctionalProgramming?FunctionalProgramming是一种编程......