当前位置: 首页 > article >正文

set与map

1,介绍

ES6提新的数据结构。set它类似于数组,值都是唯一的,本身是一个构造函数。

map数据结构 它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类

型的值(包括对象)都可以当作键。也就是说,Object结构提供了“字符串————值”

的对应,Map结构提供了“值————值”的对应。

2.方法对比

3.自身特点

3.1 set

//向Set加入值的时候,不会发生类型转换 所以5和"5"是两个不同的值。Set内部判断两个值是否不同,使用的算法叫做“Same-value equality”,
// 它类似于精确相等运算符(===),主要的区别是NaN等于自身,而精确相等运算符认为NaN不等于自身。但是两个对象总是不相等的。
// 数组去重
// function test(array) {
//   return Array.from(new Set(array)); //Array.from方法可以将Set结构转为数组。
// }
// console.log(test([1, 1, 2, 3])) // [1, 2, 3]
    // 1.筛选重叠
    // let  setA =new Set([1,2,3,4])
    // let  setB =new Set([3,4,5,6])
    // let test=setA.intersection(setB) //与元素位置无关,只要重叠就会获取到
    // console.log(test);//3,4
     // 2.去重后组合
    // let  setA =new Set([1,2,3,4])
    // let  setB =new Set([3,4,5,6])
    // let test=setA.union(setB) 
    // console.log(test);//1,2,3,4,5,6
    //   // 3.去除A中存在的B中的元素
    // let  setA =new Set([1,2,3,4])
    // let  setB =new Set([3,4,5,6])
    // let test=setA.difference(setB) 
    // console.log(test);//1,2
    // 4.去除共存元素后重组
    // let  setA =new Set([1,2,3,4])
    // let  setB =new Set([3,4,5,6])
    // let test=setA.symmetricDifference(setB) 
    // console.log(test);//1,2,5,6
    // // 5.判断A是否完全包含在B中
    // let  setA =new Set([3,4])
    // let  setB =new Set([3,4,5,6])
    // let test=setA.isSubsetOf(setB) 
    // console.log(test);//true
 // 6.判断两个数据是否完全不一样
    // let  setA =new Set([3,4])
    // console.log(setA);    
    // let  setB =new Set([3,4,5,6])
    // let test=setA.isDisjointFrom(setB) 
    // console.log(test);//false代表有重合 true代表完全不重合

 3.2map

// 1.设置键值时,字符串true和布尔值true是两个不同的键。
        // var m = new Map([
        // [true, 'foo'],
        // ['true', 'bar']
        // ]);
// 2.如果对同一个键多次赋值,后面的值将覆盖前面的值。
// 3.只有对同一个对象的引用,Map结构才将其视为同一个键
// var map = new Map();
// map.set(['a'], 555);
// map.get(['a']) // undefined
// 4.虽然NaN不严格相等于自身,但Map将其视为同一个键
// Map结构转为数组结构,比较快速的方法是结合使用扩展运算符(...)Map结构转为数组结构,比较快速的方法是结合使用扩展运算符(...)
// 结合数组的map方法、filter方法,可以实现Map的遍历和过滤
// Map还有一个forEach方法,与数组的forEach方法类似,也可以实现遍历。
// 可与其他数据结构的互相转换


http://www.kler.cn/a/285797.html

相关文章:

  • 驱动开发系列16 - Linux Graphics DRM和KMS内核模块介绍
  • 【MyBatis】MyBatis的一级缓存和二级缓存简介
  • 基于matlab的行人和车辆检测系统
  • vue.js项目实战案例源码
  • 如何选择合适的JDK:功能、性能与适用场景的全面解析
  • 墨兰:花语寓意、神秘传说与独特魅力全解析
  • 重头开始嵌入式第二十九天(Linux系统编程 网络通信 tcp)
  • Mybatis 是如何进行分页的?分页插件的原理是什么?
  • spring boot 项目 prometheus 自定义指标收集和 grafana 查询--方法耗时分位数指标
  • 江苏BGP大带宽服务器所适用的业务有哪些?
  • Spring MVC中的异常处理
  • 刷题DAY24
  • linux tail
  • 使用kafka完成数据的实时同步,同步到es中。(使用kafka实现自动上下架 upper、lower)
  • Spring Cloud Consul入门:服务发现与配置管理的最佳实践
  • 华为OD机试真题 - 荒岛求生 - 栈Stack(Python/JS/C/C++ 2024 E卷 100分)
  • 如何在D盘创建虚拟环境?包括安装PyTorch和配置PyCharm
  • 绝区零苹果电脑能玩吗,如何在Mac上玩绝区零?绝区零MacBook 下载安装保姆级教程
  • 使用 Python 实现自动化办公
  • Spring入门之DI(包含实例代码)