es6删除对象的属性_Map和Set在ES6的作用

原文:https://www.jianshu.com/p/e35a4916377c

e35860c68427b974548b0d0118ced3c5.png

现行的编程语言都会提供几种类型的数据集合支持,在ES6 之前,JavaScript 仅提供了对数组的支持。在以数组和对象为编程主力的JavaScript 语言,ES6 中引入了4种新的数据结构,分别是:集合(Set)、若集合(WeakSet)、映射(Map)、若映射(WeakMap)。下面,我们看一下它们各自的表现方式吧。 一、Set 1、概述 Set 对象是值的集合,可以按照插入的顺序迭代它的元素。Set 中的元素只会出现一次,即 Set 中的元素是唯一的。 使用方式: new Set([ iterable ]); 参数 iterable :是一个可迭代的对象,它的所有元素将被添加到新的 Set 中。 由于 Set 中的值总是唯一的,所以需要判断两个值是否相等。在对象的扩展章节中,我们讲到可以通过Object.is() 来判断是否严格相等,在 Set 中,-0 和 +0 是两个不同的值,NaN 和 undefined 是可以被存储在 Set 中的,因为 NaN 在ES6中是严格相等的。

 new Set([NaN, NaN, 2, 3, 5, 5]); // Set(4) {NaN, 2, 3, 5}

2、属性 length 属性:

 Set.length; // 0

Set.prototype:表示 Set 构造器的原型,允许想所有 Set 对象添加新的属性。 Set.prototype.constructor:返回实例的构造函数,默认是 Set。 Set.prototype.size:返回 Set 对象的值的个数。

 var mySet1 = new Set([NaN, NaN, 2, 3, 5, 5]); mySet1.size; // 4

3、方法 (1)、在 Set 对象尾部添加一个元素:Set.prototype.add(value)

 var mySet2 = new Set([NaN, NaN, 2, 3, 5, 5]); mySet2.add(1); mySet2.add(1).add("undefined"); console.log(mySet2); // Set(6) {NaN, 2, 3, 5, 1,"undefined" }

(2)、清楚 Set 中所有的元素:Set.prototype.clear() (3)、判断值是否存在于 Set 中:Set.prototype.has(value);

 var mySet3 = new Set(); mySet3.add("yuan"); mySet3.add("monkey"); mySet3.has("yuan"); // true mySet3.clear();  mySet3.has("yuan"); // false

(4)、删除 Set 中的某个值: Set.prototype.delete(value);

 var mySet = new Set(); mySet.add("foo"); mySet.delete("bar"); // 返回 false,不包含 "bar" 这个元素 mySet.delete("foo"); // 返回 true,删除成功 mySet.has("foo"); // 返回 false,"bar" 已经成功删除

(5)遍历 Set 对象中的元素:forEach()、keys()、values()、entries() forEach:

 function logSetElements(value1, value2, set) { console.log("s[" + value1 + "] = " + value2); } new Set(["foo
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值