js ES8对象方法扩展
1.Object.values()方法返回一个给定对象的所有可枚举属性值的数组
2. Object.entries()方法返回一个给定对象自身可比案例属性[key,value]的数组
3.Object.getOwnPropertyDescriptions()方法返回指定对象所有自身属性的描述对象
// Object.values()方法返回一个给定对象的所有可枚举属性值的数组 // Object.entries()方法返回一个给定对象自身可比案例属性[key,value]的数组 // Object.getOwnPropertyDescriptions()方法返回指定对象所有自身属性的描述对象 // 生命对象 const company = { name:"字节跳动", cities:["北京","上海","深圳"], job:["前端","java","大数据","运维"] } // 获取对象所有的键 console.log(Object.keys(company));//['name', 'cities', 'job'] // 获取对象所有的值 console.log(Object.values(company));//['字节跳动', Array(3), Array(4)] // entries console.log(Object.entries(company));//[Array(2), Array(2), Array(2)] // 创建Map const m = new Map(Object.entries(company)); console.log(m);//Map(3) {'name' => '字节跳动', 'cities' => Array(3), 'job' => Array(4)} console.log(m.get('cities'));//['北京', '上海', '深圳'] // 对象属性的描述对象 深拷贝对象特性去给新对象配置相同类型特性 console.log(Object.getOwnPropertyDescriptors(company));//{name: {…}, cities: {…}, job: {…}} const obj = Object.create(null, { name: { // 设置值 value: '字节跳动', // 属性特性 writable: true, configurable: true, enumerable: true } })