美文网首页
ES6 5.set-map数据结构

ES6 5.set-map数据结构

作者: Coldhands | 来源:发表于2018-07-20 22:52 被阅读0次

set

ES6提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。
Set函数可以接受一个数组(或类似数组的对象)作为参数,用来初始化。
四个操作方法:

  • add(value):添加某个值,返回Set结构本身。
  • delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
  • has(value):返回一个布尔值,表示该值是否为Set的成员。
  • clear():清除所有成员,没有返回值
add
{
    let set = new Set();
    set.add(1);
    set.add(2);
    console.log(set.size);
}

输出结果:2

{
    let arr = [1,2,3,4];
    let set = new Set(arr);
    console.log(set);
}

输出结果:Set(4) {1,2,3,4}

{
     //数组去重
    let arr = [1,2,3,4,3];
    let set = new Set(arr);
    console.log('unique',set)
}

输出结果:Set(4) {1,2,3,4}

has
{
    // has
    let arr = ['add','delete','has','clear'];
    let set = new Set(arr);
    console.log(set.has('has'));
}

输出结果:true

delete
{
    // delete
    let arr = ['add','delete','has','clear'];
    let set = new Set(arr);
    console.log(set.delete('delete'),set);
}

输出结果:true Set(3) {"add", "has", "clear"}

clear
{
    // clear
    let arr = ['add','delete','has','clear'];
    let set = new Set(arr);
    set.clear()
    console.log(set);
}

输出结果:Set(0) {}

{
    //set的遍历
    let arr = ['add','delete','has','clear'];
    let set = new Set(arr);
    for(let key of set.keys()){
        console.log('keys',key);
    }
    for(let value of set.values()){
        console.log('values',value);
    }
    for(let [key,value] of set.entries()){
        console.log('entries',key,value);
    }
    set.forEach(function(item){
        console.log(item);
    })
}
输出结果: 遍历输出

weakset

和set区别:

  • WeakSet支持的数据类型只能是对象。
  • 没有clear()方法,没有set属性。
  • 不能遍历。
  • 不与垃圾回收机制挂钩。

map

Map结构提供了“值 -- 值”的对应,是一种更完善的Hash结构实现。如果你需要“键值对”的数据结构,Map比Object更合适。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。

{
    let map = new Map();
    let arr = ['123'];
    map.set(arr,234);
    console.log(map,map.get(arr))
}

输出结果:Map{['123']=>234} 234

{
    let map = new Map([['a',123],['b',456]]);
    console.log(map);
    console.log('delete',map.delete('a'),map);
    console.log('clear',map.clear(),map);
}
输出结果: map的方法

遍历方法同set。
weakmap参考weakset。

优先使用map,当数据要求比较高,需要唯一性时使用set。

相关文章

网友评论

      本文标题:ES6 5.set-map数据结构

      本文链接:https://www.haomeiwen.com/subject/qvmqmftx.html