ES6 中的 Set 和 Map 数据结构

Set


Set 这种数据结构类似于数组,不同的是,Set 成员的值都是唯一的,不能有重复的值

Set 本身是一个构造函数,用 new Set()生成

const arr = [ 1, 1, 2, 2, 3, 3 ]; 
const set = new Set(arr);
console.log(set);   // 1, 2, 3

Set 结构的实例具有的属性:

- Set.prototype.constructor: 构造函数,默认就是 Set 函数

- Set.prototype.size: 返回 Set 实例的成员总数

Set 实例的操作方法:

- add(value) :添加某个值,返回 Set 结构本身

- delete(value) :删除某个值,返回一个布尔值,表示删除是否成功

- has(value) :返回一个布尔值,表示该值是否为 Set 成员

- clear() :清除所有成员,没有返回值

下面为实例化 Set 并使用其操作方法:

const set = new Set();

set.add(1).add(1).add(2).add(3);
console.log(set.size);  // 3
console.log(set);   // 1, 2, 3

set.delete(2);
console.log(set);   // 1, 3

set.has(3);
console.log(set);   // true

set.clear();
console.log(set);   // Set(0){}

由于 Set 结构的成员的值是唯一的,所以可以利用 Set 结构进行数组去重,方法如下:

Array.from( new Set (array) );

先将数组传进 Set 结构中进行去重,再使用 Array.from( ) 将Set 结构转化为数组

另外,在 Set 结构中,NaN 和 NaN 是相等的,因为不能给 Set 中添加两个 NaN;但是,可以给 Set 中添加两个空对象{},表明两个对象总是不相等的 

 

Map


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

Map 结构本身也是一个构造函数,用 new Map( ) 生成 

Map 结构的实例有以下属性和方法:

size 属性:返回 Map 结构的成员总数

set 方法:set (key, value),设置键名 key 对应的键值为 value,然后返回整个 Map 结构。如果 key 已经有值,则键值会被更新,否则就新生成该键

get 方法:get (key),读取 key 对应的键值,如果找不到 key,返回 undefined

has 方法:has(key),返回一个布尔值,表示某个键是否在当前 Map 对象之中

delete 方法:delete(key),删除某个键,返回 true。如果删除失败,返回 false

clear方法:clear( ),清除所有成员,没有返回值

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值