JS新增对象Map、Set

JavaScript012

JS新增对象Map、Set,第1张

Map映射是ES6里面新增的一个对象,是一组键值对的结构,具有极快的查找速度。

Map是类似Object的一种键值对集合,区别在于Map的键不仅限于是字符串,其他各种类型的值包括对象都可以成为Map的键

Set也是ES6新增的对象,Set是一组key的集合,但不存储value, 而且key不重复,可自动排重

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

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

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

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

原文链接: https://blog.csdn.net/hot_cool/java/article/details/83685046

indexOf:是数组的元素存在性检查方法。需要遍历所有元素来检查,此方法的时间复杂度是O(n)。

hasOwnProperty:是对象的属性(名称)存在性检查方法。对象的属性可以基于Hash表实现,因此对属性进行访问的时间复杂度可以达到O(1)。

所以很明显,后者可以远快于前者。

alert(bb.hasOwnProperty(name))之所以返回false是因为名称格式不对,这其中的name被视为变量,其值为空,自然就返回false,改为字符即可。这样就行:alert(bb.hasOwnProperty("name"))

alert(bb.hasOwnProperty("age"))而:for(var dd in bb)中的dd值自然也是"name"和"age",假如alert(dd)返回的字符name和age而不是object。