ES8 对象方法扩展

本文介绍了ES8中新增的Object.keys(),Object.values(),Object.entries(),Object.getOwnPropertyDescriptors(),Object.getOwnPropertyDescriptor()等方法,展示了如何使用这些方法处理JavaScript对象,包括获取键名、键值、键值对以及对象属性的描述信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 ES8新增了Object.keys()、Object.values()、Object.entries()、Object.getOwnPropertyDescriptors()、Object.getOwnPropertyDescriptor()等方法来对对象进行扩展;

先来声明一个对象

const play = {
            name: "狼人杀",
            player: ["女巫","狼人","猎人","守卫","村民","预言家"]
        }
1. Object.keys()方法获取对象所有的键名 , 该方法返回一个数组,包含对象所有可枚举的(enumerable)键名
const keys = Object.keys(play);
        console.log(keys);

2. Object.values()方法获取对象所有的键值  ,该方法返回一个数组,包含对象所有的值,包括数组和函数
const values = Object.values(play);
        console.log(values);

3. Object.entries()方法获取对象所有键值对 ,该方法返回一个数组,包含对象所有键值对,数组的每一项是一个数组,包含两个元素,第一个元素是键,第二个元素是值
const entries = Object.entries(play);
        console.log(entries);

4. 可以通过Object.entries()方法获取对象所有键值对,然后通过map()方法遍历,得到每个键值对的键和值(快速创建一个Map)
console.log(m); // Map(2) {"name" => "狼人杀", "player" => Array(6)}
console.log(m.get("name")); // "狼人杀"
console.log(m.get("player")); // Array(6) ["女巫", "狼人", "猎人", "守卫", "村民", "预言家"]

5. 对象属性的描述结果
1. Object.getOwnPropertyDescriptors()方法返回一个对象,其属性与对象所有自身属性(非继承属性)相关联,每个属性都有一个描述对象,描述对象的属性如下:

value:属性的值

writable:属性是否可写

enumerable:属性是否可枚举

configurable:属性是否可配置

console.log(Object.getOwnPropertyDescriptors(play));

2. Object.getOwnPropertyDescriptor()方法返回指定对象上一个自身属性的描述对象,该方法接受两个参数,第一个参数是要获取描述对象的对象,第二个参数是要获取描述对象的属性名。
const descriptor = Object.getOwnPropertyDescriptor(play, "name");
console.log(descriptor);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值