Es6新特性:set

1.set的一些重要的特性

(1)Set.prototype.constructor,构造函数,默认是set函数
(2)Set.prototype.size,返回set实例的成员总数
(3)set是一种数据结构,是伪数组,无法访问长度,可以Array.from方法可以将set结构转化数组,再访问它的长度;
(4)set里面的原始值不允许重复,let set = new Set([1,2,3,1,2,3]),此时set为[1,2,3]
(5)set里面添加的对象即使相同也是不相等的,例如:set.add({a:1}); set.add({a:1}); 可以同时存在;

2.set的四种操作方法:

    // 添加元素
            add(value),用于向数组中添加元素,返回set结构本身;
            set.add(11112);
        //删除元素
            delete(value),删除元素,返回一个bool值,表示是否删除成功;
            set.delete(23);
        //是否存在某个元素
            has(value),返回一个bool值表示set中是否含有本元素;
            set.has(13);
            console.log(set.has(13));
        //清除所有成员
            clear(),清除所有的set成员,没有返回值;
            set.clear();
            console.log(set);

3.set的遍历方法

Set 会维护值插入时的顺序,因此支持按顺序迭代。
集合实例可以提供一个迭代器(Iterator),能以插入顺序生成集合内容。可以通过 values()方
法及其别名方法 keys()(或者 Symbol.iterator 属性,它引用 values())取得这个迭代器:

			console.log(set1.keys==set1[Symbol.iterator]);//true
			console.log(set1.values==set1[Symbol.iterator]);//true
        //1.
			 let set1 = new Set(['喵喵','旺旺','啾啾']);
			 for(let key of set1.keys()){
			     console.log(key);
			 }
	 	//output:
			 //喵喵
			 //旺旺
			 //啾啾
		//2.
			 for(let value of set1.values()){
			     console.log(value);
			 }
		//output:
			 //喵喵
			 //旺旺
			 //啾啾
		//3.
			 for (let value of set1[Symbol.iterator]()) { 
			 	 console.log(value); 
			}
		//output:
			 //喵喵
			 //旺旺
			 //啾啾
		//4.
			 for(let item of set1.entries()){
			     console.log(item);
			 }
	 	//output:
			//[ '喵喵', '喵喵' ]
			//[ '旺旺', '旺旺' ]
			//[ '啾啾', '啾啾' ]
        //5.
            let myArr = new Set([1,2,3,4,5]);
            for(let x of myArr){
                console.log(x);
            }
       	//output:
       		//1
       		//2
       		//3
       		//4
       		//5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值