ES8新增Object.values、Object.entries、Object.getOwnPropertyDescriptors、String.prototype.padStart/padEnd

本文主要是介绍ES8新增Object.values、Object.entries、Object.getOwnPropertyDescriptors、String.prototype.padStart/padEnd,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. Object.values()方法返回一个给定对象自身的所有可枚举属性值的数组:

const obj = {name: 'zs',age: 18
};
console.log(Object.values(obj));  // [ 'zs', 18 ]

2. Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组:

const obj = {name: 'zs',age: 18
};
console.log(Object.entries(obj));
for ([key, value] of Object.entries(obj)) {console.log(key, value);
}
const s = new Map(Object.entries(obj));
console.log(s);

 输出:

3. Object.getOwnPropertyDescriptors()方法用来获取一个对象的所有自身属性的描述符:

const student = {firstName: 'Mi',lastName: 'Sun',get fullName() {return this.lastName + ' ' + this.firstName;}
};
console.log(student.fullName);  // Sun Mi
// Object.assign() 方法只能拷贝源对象的可枚举的自身属性,同时拷贝时无法拷贝属性的特性们,而且访问器属性会被转换成数据属性,也无法拷贝源对象的原型,该方法配合 Object.create() 方法可以实现上面说的这些。
const s1 = Object.assign({}, student);
console.log(s1);  // { firstName: 'Mi', lastName: 'Sun', fullName: 'Sun Mi' }// Object.getOwnPropertyDescriptors()配合Object.defineProperties()实现对象的拷贝
const descriptor = Object.getOwnPropertyDescriptors(student);
console.log(descriptor);
const s2 = Object.defineProperties({}, descriptor);
console.log(s2);  // { firstName: 'Mi', lastName: 'Sun', fullName: [Getter] }s2.firstName = 'Hong';
console.log(s2.fullName);  // Sun Hong

输出:

4. String.prototype.padStart/padEnd:

padStart() 方法用另一个字符串填充当前字符串(如果需要的话,会重复多次),以便产生的字符串达到给定的长度。从当前字符串的左侧开始填充;

padEnd()  方法会用一个字符串填充当前字符串(如果需要的话则重复填充),返回填充后达到指定长度的字符串。从当前字符串的末尾(右侧)开始填充。

const student = {name: 'zs',age: 18,gender: true
};
for (const [key, value] of Object.entries(student)) {// console.log(key, value);// console.log(key.padEnd(16, '-') + value.toString().padStart(3, '0'));console.log(`${ key.padEnd(16, '-') }${ value.toString().padStart(3, '0') }`);
}

输出:

这篇关于ES8新增Object.values、Object.entries、Object.getOwnPropertyDescriptors、String.prototype.padStart/padEnd的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/973944

相关文章

IDEA如何将String类型转json格式

《IDEA如何将String类型转json格式》在Java中,字符串字面量中的转义字符会被自动转换,但通过网络获取的字符串可能不会自动转换,为了解决IDEA无法识别JSON字符串的问题,可以在本地对字... 目录问题描述问题原因解决方案总结问题描述最近做项目需要使用Ai生成json,可生成String类型

深入探讨Java 中的 Object 类详解(一切类的根基)

《深入探讨Java中的Object类详解(一切类的根基)》本文详细介绍了Java中的Object类,作为所有类的根类,其重要性不言而喻,文章涵盖了Object类的主要方法,如toString()... 目录1. Object 类的基本概念1.1 Object 类的定义2. Object 类的主要方法3. O

Android13_SystemUI下拉框新增音量控制条

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Android13_SystemUI下拉框新增音量控制条 一、必备知识二、源码分析对比1.brightness模块分析对比2.statusbar/phone 对应模块对比对比初始化类声明对比构造方法 三、源码修改四、相关资源 一、必备知识 在Android12 版本上面已经完成了功能的实现,目前是在And

详解Tomcat 7的七大新特性和新增功能(1)

http://developer.51cto.com/art/201009/228537.htm http://tomcat.apache.org/tomcat-7.0-doc/index.html  Apache发布首个Tomcat 7版本已经发布了有一段时间了,Tomcat 7引入了许多新功能,并对现有功能进行了增强。很多文章列出了Tomcat 7的新功能,但大多数并没有详细解释它们

【Python报错已解决】AttributeError: ‘list‘ object has no attribute ‘text‘

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一:检查属性名2.2 步骤二:访问列表元素的属性 三、其他解决方法四、总结 前言 在Python编程中,属性错误(At

string字符会调用new分配堆内存吗

gcc的string默认大小是32个字节,字符串小于等于15直接保存在栈上,超过之后才会使用new分配。

hdu2072(string的应用)

单词数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 25447    Accepted Submission(s): 5957 Problem Description lily的好朋友xiaoou333最近很空,他

error while loading shared libraries: libnuma.so.1: cannot open shared object file:

腾讯云CentOS,安装Mysql时: 1.yum remove libnuma.so.1 2.yum install numactl.x86_64

【UVA】10739 - String to Palindrome(动态规划)

比较水的动态规划 dp[i][j] 将原串 i ~ j 之内的字符转化为回文字符所需要的最小操作次数 其中删除操作和添加操作本质上是一样的。 三个状态转移方程: dp[i][j] = min(dp[i][j] ,dp[i + 1][j]); dp[i][j] = min(dp[i][j] ,dp[i + 1][j - 1]); dp[i][j] = min(dp[i][j] ,dp[

理解String的compareTo()方法返回值

compareTo()的返回值是整型,它是先比较对应字符的大小(ASCII码顺序), 如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值。 如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符作比较, 以此类推,直至比较的字符或被比较的字符有一方全比较完,这时就比较字符的长度。 我们可以通过阅读源码加深对compareTo()的理解: comp