• 技术文章 >web前端 >前端问答

    es6的set和map的区别是什么

    青灯夜游青灯夜游2022-04-15 18:38:11原创133

    区别:1、set指的是“集合”结构,而Map指的是“字典”结构;2、set是以“[value, value]”的形式储存元素,而Map是以“[key, value]”的形式储存;3、Map可用get()通过键查找特定值并返回,而set不行。

    本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。

    简述:

    集合 与 字典 的区别:

    集合(Set)

    ES6 新增的一种新的数据结构,类似于数组,但成员是唯一且无序的,没有重复的值。

    Set 本身是一种构造函数,用来生成 Set 数据结构。

    Set 对象允许你储存任何类型的唯一值,无论是原始值或者是对象引用。

    const s = new Set()
    [1, 2, 3, 4, 3, 2, 1].forEach(x => s.add(x))
    for (let i of s) {
        console.log(i)	// 1 2 3 4
    }
    // 去重数组的重复对象
    let arr = [1, 2, 3, 2, 1, 1]
    [... new Set(arr)]	// [1, 2, 3]

    注意:向 Set 加入值的时候,不会发生类型转换,所以`5`和`"5"`是两个不同的值。Set 内部判断两个值是否不同,使用的算法叫做“Same-value-zero equality”,它类似于**精确相等**运算符(`===`),主要的区别是**`NaN`等于自身,而精确相等运算符认为`NaN`不等于自身。**

    let set = new Set();
    let a = NaN;
    let b = NaN;
    set.add(a);
    set.add(b);
    set // Set {NaN}
    
    let set1 = new Set()
    set1.add(5)
    set1.add('5')
    console.log([...set1])	// [5, "5"]

    操作方法:

    遍历方法:遍历方法(遍历顺序为插入顺序)

    字典(Map):

    是一组键值对的结构,具有极快的查找速度。

    const m = new Map()
    const o = {p: 'haha'}
    m.set(o, 'content')
    m.get(o)	// content
    
    m.has(o)	// true
    m.delete(o)	// true
    m.has(o)	// false

    操作方法:

    遍历方法:

    总结**:**

    Set:

    Map:

    【相关推荐:javascript视频教程web前端

    以上就是es6的set和map的区别是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:es6 set map
    上一篇:es6全名是什么 下一篇:es6数组怎么去掉规定的值
    Web大前端开发直播班

    相关文章推荐

    • es6新增了哪些扩展• es6箭头函数有哪些特性• es6数组的排序方法是什么• es6中拼接字符串有几种写法• es6声明变量必须初始化吗• 你说你会用ES6,那赶紧用上啊!

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网