除了 for…in 方法,還有許多迴圈方法可以協助處理陣列資料,但物件並不支援這些方法,以下為例
|
假設我們想取得每個元素的價格,直接使用陣列方法 forEach()
會產生錯誤,因為物件並沒有該寫法
|
廣告
將物件轉為陣列
- Object.keys()
- Object.values()
- Object.entries()
Object.keys()
取得一個物件的所有可枚舉屬性名稱(key),並回傳陣列
|
|
Object.values()
取得一個物件的所有可枚舉屬性的值(value),並回傳陣列
|
|
Object.entries()
可以取得最完整的資訊,將一個物件的所有可枚舉屬性(key)與值(value)組合一個陣列,第一個值為 key,第二個值為 value
|
|
Object.fromEntries()
Object.fromEntries()
為 Object.entries()
的反向操作,將 陣列轉物件
|
小結
Object.keys()
跟Object.entries()
可以用來取得物件的屬性名稱跟值Object.values()
適合適合用來取得物件各元素值Object.fromEntries()
為Object.entries()
的逆向操作
以上方法在處理物件時提供了不同的優點和功能,常會搭配陣列方法使用(參考文章),可以根據需求選擇最適方法
參考資源:
https://ithelp.ithome.com.tw/articles/10239942
https://www.casper.tw/development/2022/03/10/object-for-each/
廣告
評論