【ES8(2017)】Object 扩展 values() / entries() / getOwnPropertyDescriptors()
生活随笔
收集整理的這篇文章主要介紹了
【ES8(2017)】Object 扩展 values() / entries() / getOwnPropertyDescriptors()
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- Object.values()
- Object.entries()
- Object.getOwnPropertyDescriptors()
ES8之前獲取對象的每個屬性的value值:
const obj = {name: 'xiaoming',course: 'es' } console.log(Object.keys(obj)) const res = Object.keys(obj).map(key => obj[key]) console.log(res) // ["xiaoming", "es"]ES8中對象擴展補充了兩個靜態方法,用于遍歷對象:Object.values(),Object.entries()
Object.values()
Object.values() 返回一個數組,其元素是在對象上找到的可枚舉屬性值。屬性的順序與通過手動循環對象的屬性值所給出的順序相同。(for...in還會遍歷原型上的屬性值)
const obj = {name: 'xiaoming',course: 'es' } console.log(Object.values(obj)) // ["xiaoming", "es"]Object.values 是在對象上找到可枚舉的屬性的值,所以只要這個對象是可枚舉的就可以,不只是{}這種形式。
Object.entries()
Object.entries() 方法返回一個給定對象自身可枚舉屬性的鍵值對數組,其排列與使用for...in循環遍歷該對象時返回的順序一致。(區別在于 for-in 循環也枚舉原型鏈中的屬性)
我們知道 Object 是不可直接遍歷的,如果使用Object.entries()則可以完成遍歷任務。
let xiaoming = {'name': 'xiaoming','age': 18,'addr': 'China' }for (let [k, v] of Object.entries(xiaoming)) {console.log(k, v) } // name,xiaoming // age,18 // addr,ChinaObject.entries() 返回的是個數組,里面包含了[key,value]的數據,這里也用了解構賦值的方式。
Object.getOwnPropertyDescriptors()
defineProperty 的第三個參數就是描述符(descriptor)。這個描述符包括幾個屬性:
- value [屬性的值]
- writable [屬性的值是否可被改變]
- enumerable [屬性的值是否可被枚舉]
- configurable [描述符本身是否可被修改,屬性是否可被刪除]
總結
以上是生活随笔為你收集整理的【ES8(2017)】Object 扩展 values() / entries() / getOwnPropertyDescriptors()的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ab plc软件_【万泉河】PLC垃圾程
- 下一篇: python字符串倒数第三个_pytho