日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ES6学习--对象属性的遍历

發布時間:2023/12/9 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ES6学习--对象属性的遍历 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ES6一共有5種方法可以遍歷對象的屬性。

(1)for...in

for...in循環遍歷對象自身的和繼承的可枚舉屬性(不含Symbol屬性)。

(2)Object.keys(obj)

Object.keys返回一個數組,包括對象自身的(不含繼承的)所有可枚舉屬性(不含Symbol屬性)。

(3)Object.getOwnPropertyNames(obj)

Object.getOwnPropertyNames返回一個數組,包含對象自身的所有屬性(不含Symbol屬性,但是包括不可枚舉屬性)。

(4)Object.getOwnPropertySymbols(obj)

Object.getOwnPropertySymbols返回一個數組,包含對象自身的所有Symbol屬性。

(5)Reflect.ownKeys(obj)

Reflect.ownKeys返回一個數組,包含對象自身的所有屬性,不管是屬性名是Symbol或字符串,也不管是否可枚舉。

///Object.keys遍歷屬性/
let obj = {a:1, b:2,c:3};
Object.keys(obj); //["a", "b", "c"]返回對象屬性數組

?

/Object.keys遍歷value/
let obj = {a:1,b:2,c:function(){}};
Object.values(obj); //[1, 2, f]返回對象屬性value值數組


///Object.entries遍歷鍵值對
let obj = {a:1,b:2,c:function(){}};
Object.entries(obj); [['a',1],['b', 2], ['c',f]返回對象鍵值對數組

///Object.getOwnPropertyNames遍歷屬性(枚舉+不可枚舉)/
let obj = {a:1,b:2,c:function(){}};
Object.getOwnPropertyNames(obj); ["a", "b", "c"]返回對象包括不可枚舉的屬性數組

?

以上的5種方法遍歷對象的屬性,都遵守同樣的屬性遍歷的次序規則。

  • 首先遍歷所有屬性名為數值的屬性,按照數字排序。
  • 其次遍歷所有屬性名為字符串的屬性,按照生成時間排序。
  • 最后遍歷所有屬性名為Symbol值的屬性,按照生成時間排序。
Reflect.ownKeys({ [Symbol()]:0, b:0, 10:0, 2:0, a:0 }) // ['2', '10', 'b', 'a', Symbol()]

上面代碼中,Reflect.ownKeys方法返回一個數組,包含了參數對象的所有屬性。這個數組的屬性次序是這樣的,首先是數值屬性2和10,其次是字符串屬性b和a,最后是Symbol屬性。

?

轉載于:https://www.cnblogs.com/1571523732-qq/p/10076385.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的ES6学习--对象属性的遍历的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。