数据结构---Set和Map

Set数据结构详解
本文深入讲解了Set数据结构的特性,包括如何初始化Set,利用[...newSet()]进行数据去重,以及Set提供的属性和方法,如add(), delete(), has()等。特别指出Set结构在对象去重上的局限性。

1.Set数据结构

Set本质上是一个没有重复数据的一种集合。Set本身也是一种数据结构的构造函数。

1.Set的初始化

var obj = new Set(参数);

上面生成一个Set的实例,obj是集合对象。

参数可以是数组,也可以是类数组(具有iterator接口的数据,如字符串)

var obj = [...new Set([1,3,3,3])]; // [1,3]
var obj = [...new Set('hellohello')]; // ['h','e','l','o'].join('')--'helo'

注意new Set()生成的对象是类数组,通过[...]转为数组。

⚠️:[...new Set(数组或者类数组)] 可以去重!!!内部通过Object.js()比较。

 但是所有的对象基本都不相同,该方法不适用于对象!

⚠️将Set结构转为数组还有一个方法Array.from(set对象);Array.from可以将所有的类数组(含length)转为数组

let obj = Array.from(new Set([1,23,3,3]))

2.Set的属性和方法

Set的属性和方法都在prototype上,可以看作下面的形式

class Set{
    size0;
    constructor() {}
    add(value) { return this;} // 可以.add().add()
    delete(value){ return true;}//false
    has(value) { return true;} //false
    clear() {}
}

has可以用来判断

转载于:https://www.cnblogs.com/lyraLee/p/11553167.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值