资讯专栏INFORMATION COLUMN

ES6:遍历对象的键的所有方法

OpenDigg / 1256人阅读

摘要:遍历对象的键的所有方法预定义如下对象在上定义个不可枚举的属性方法用于遍历自身和原型对象的可枚举的属性输出方法用于返回对象自身的所有可枚举属性输出方法用于返回对象所有属性,包含可枚举属性和不可枚举属性,不包含属性输出方法用于返回对象所有属性,

遍历对象的键的所有方法

预定义如下对象:

Object.prototype.parentKey = "pValue";
Object.prototype.parentFun = function(){};
let obj = {
  mykey: "value",
  myFun: function(){},
  [Symbol()]:"symbolValue"
}
// 在obj上定义2个不可枚举的属性
Object.defineProperty(obj, "myUnemurableKey", {value:"value22", enumerable:false});
Object.defineProperty(obj, "myUnenmurableFunc", {value:function(){}, enumrable:false});
for ... in方法

用于遍历自身和原型对象的可枚举的属性

for (let key in obj) {
    console.log(key)
}

输出:
mykey
myFun
parentKey
parentFun

Object.keys()方法

用于返回对象自身的所有可枚举属性

Object.keys(obj)

输出:
["mykey", "myFun"]

Object.getOwnPropertyNames()方法

用于返回对象所有属性,包含可枚举属性和不可枚举属性,不包含Symbol属性

Object.getOwnPropertyNames(obj)

输出:
["mykey", "myFun", "myUnemurableKey", "myUnenmurableFunc"]

Object.getOwnPropertySymbols()方法

用于返回对象所有属性,包含可枚举属性和不可枚举属性,只包含Symbol属性

Object.getOwnPropertySymbols(obj)

输出:
[Symbol()]

Reflect.ownKeys()方法

用于返回对象所有属性,包含可枚举属性和不可枚举属性,也包含Symbol属性

Reflect.ownKeys(obj)

输出:
["mykey", "myFun", "myUnemurableKey", "myUnenmurableFunc", Symbol()]

Object.getOwnPropertyDescriptors方法

这个方法可以返回对象自身所有属性的描述对象,包含key, value, writable, enumerable, configurable。

Object.getOwnPropertyDescriptors(obj)

输出:

{
    "mykey": {
        "value": "value",
        "writable": true,
        "enumerable": true,
        "configurable": true
    },
    "myFun": {
        "writable": true,
        "enumerable": true,
        "configurable": true
    },
    "myUnemurableKey": {
        "value": "value22",
        "writable": false,
        "enumerable": false,
        "configurable": false
    },
    "myUnenmurableFunc": {
        "writable": false,
        "enumerable": false,
        "configurable": false
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/94376.html

相关文章

  • es6 Map和WeakMap

    摘要:事实上,不仅仅是数组,任何具有接口且每个成员都是一个双元素的数组的数据结构都可以当做构造函数的参数。返回所有成员的遍历器需要特别注意的是,的遍历顺序就是插入顺序。转为转为,正常情况下,所有键名都是字符串。 Map JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键。这给它的使用带来了很大的限制。为了解决这个问题,ES6 提...

    sPeng 评论0 收藏0
  • ES6系列---Set集合与Map集合

    摘要:中模拟与长久以来,数组一直是中唯一的集合类型。用数组初始化集合事实上,只要是可迭代对象数组集合集合,都可以作为构造函数的参数。构造函数通过迭代器从参数中提取值。 ES5中模拟Set与Map 长久以来,数组一直是JavaScript中唯一的集合类型。如果开发者们需要使用非数值型索引,就会用非数组对象创建所需的数据结构,而这就是Set集合与Map集合的早期实现。 一般来说,Set集合常被用...

    happyhuangjinjin 评论0 收藏0
  • es6 Map和set

    摘要:返回一个布尔值,表示该值是否为的成员。清除所有成员,没有返回值。该数组中的每一项也必须是数组,内部数组的首个项会作为键,第二项则为对应值。返回所有成员的遍历器需要特别注意的是,的遍历顺序就是插入顺序。 Js大部分历史时期都只存在一种集合类型,也就是数组类型。数组在 JS 中的使用正如其他语言的数组一样,但缺少更多类型的集合导致数组也经常被当作队列与栈来使用。数组只使用了数值型的索引,而...

    superPershing 评论0 收藏0
  • 由codewars上的一道题目学习ES6的Map

    摘要:我对数据结构的学习最近在上做了一道题目,嗯,我这个渣渣没有做出来,然后看了别人的解决方案,是时候学习一下的了。。。。。读取对应的键值,如果找不到返回键是函数返回一个布尔值,表示某个键是否在数据结构中。 我对ES6数据结构Map的学习 最近在CodeWars上做了一道题目,嗯,我这个渣渣没有做出来,然后看了别人的解决方案,Map??? 是时候学习一下ES6的Map了。。。。。 以下是原题...

    IamDLY 评论0 收藏0
  • Set和Map数据结构。

    摘要:本身是一个构造函数,用来生成数据结构。该数组的成员是一个个表示键值对的数组。张三张三事实上,不仅仅是数组,任何具有接口每个成员都是一个双元素的数组的数据结构都剋以当作构造函数的参数。实例的属性和操作方法属性属性返回结构的成员总数。 ES6提供了新的数据结构Set,它类似与数组,但是成员值都是唯一的,没有重复的值。 Set本身是一个构造函数,用来生成Set数据结构。 const s = ...

    lixiang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<