← 返回首页
Javascript基础教程(十七)
发表时间:2020-03-28 13:05:10
讲解Javascript的Map与Set

学过Java的同学都听说过集合框架(Collection),那么在最新的ES6规范引入了新的数据类型Map和Set,其作用就等同于Java集合框架中的Map与Set。

1.Map

Map是一种键值对的结构,使用Map可以提高查找效率。 例如:

<script>
    let map = new Map([['北京', "010"], ['上海', "021"], ['广州', "020"],['东京', "000"]]);
    //普通forEach遍历
    map.forEach(function(v,k){
        console.log(k+"="+v);
    })
    //箭头函数遍历
    map.forEach((v,k)=>{
        console.log(k+"="+v);
    })
    console.log("----------value的替换-----------");
    //value的替换
    map.set("东京","null");
    map.forEach((v,k)=>{
        console.log(k+"="+v);
    })
    //添加新的键值对
    console.log("----------添加新的键值对-----------");
    map.set('西安', "029");
    map.forEach((v,k)=>{
        console.log(k+"="+v);
    })
    //判断某个键是否存在
    console.log(map.has("上海"));
    //删除某个键
    map.delete("广州");
    console.log("----------删除某个键-----------");
    map.forEach((v,k)=>{
        console.log(k+"="+v);
    })
</script>

运行结果:

2.Set

Set和Map类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在Set中,没有重复的key。

例如:

<script>
    let set = new Set(['orange','banana','apple']);
    console.log("-----------遍历set----------");
    set.forEach(function(k){
        console.log(k);
    })

    set.add('grape');
    set.add('apple'); //不会添加重复的key
    console.log("-----------添加重复的key----------");
    set.forEach(function(k){
        console.log(k);
    })

    set.delete('banana')
    console.log("-----------删除key----------");
    set.forEach(function(k){
        console.log(k);
    })

</script>

运行结果: