JavaScript Object.entries()
Object.entries方法返回給定物件自有可列舉屬性鍵值對的陣列。
上述概念強調兩點:
(1).可以返回的屬性鍵值對必須是自有,也就是不能是從原型鏈上繼承而來。
(2).返回值是一個陣列,陣列的元素是儲存有鍵值對的子陣列。
遍歷返回的鍵值對的順序與使用for in語句返回的順序規則相同。
關於這個順序規則在JavaScript Object.values()一章節有介紹。
語法結構:
[JavaScript] 純文字檢視 複製程式碼Object.entries(obj)
引數解析:
(1).obj:必需,被返回可列舉鍵值對的物件。
瀏覽器相容:
(1).IE瀏覽器不支援此方法。
(2).Edge瀏覽器支援此方法。
(3).谷歌瀏覽器支援此方法。
(4).火狐瀏覽器支援此方法。
(5).opera瀏覽器不支援此方法。
(6).safria瀏覽器支援此方法。
此方法是ES2017新增。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼let web={ webName:"螞蟻部落", age:6, address:"青島市南區" } console.log(Object.entries(web));
程式碼執行效果截圖如下:
可以看到Object.entries方法的返回值是一個陣列,它的元素也是一個陣列。
每一個子陣列具有兩個元素,分別是指定物件的屬性名稱和屬性值,也就是鍵值對。
再來看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼let web={ webName:"螞蟻部落", age:6, address:"青島市南區" } Object.defineProperty(Antzone, "url", { value: "http://www.softwhy.com", enumerable: false }); console.log(Object.entries(web));
程式碼執行效果截圖如下:
由於url屬性是不可列舉的,所以Object.entries方法無法獲取到。
[JavaScript] 純文字檢視 複製程式碼let web={ webName:"螞蟻部落", age:6, address:"青島市南區" } Object.prototype.codeTest="ES2015"; console.log(web);
上述程式碼在原型鏈上為物件新增一個codeTest屬性,屬性值為"ES2015"。
程式碼執行效果截圖如下:
現在對web物件應用Object.entries方法,程式碼如下:
[JavaScript] 純文字檢視 複製程式碼let web={ webName:"螞蟻部落", age:6, address:"青島市南區" } Object.prototype.codeTest="ES2015"; console.log(Object.entries(web));
程式碼執行效果截圖如下:
有上圖可見,Object.entries方法對於原型鏈上繼承的非自有屬性無能為力。
相關文章
- ES7 Object.keys,Object.values,Object.entriesObject
- JavaScript高階:JavaScript物件導向,JavaScript內建物件,JavaScript BOM,JavaScript封裝JavaScript物件封裝
- javaScript系列[06]-javaScript和thisJavaScript
- [Javascript] How javascript read the property?JavaScript
- javaScript系列[05]-javaScript和JSONJavaScriptJSON
- “This” is For JavaScriptJavaScript
- This in JavaScriptJavaScript
- JavaScript -"this"JavaScript
- JavaScriptJavaScript
- javascript ??JavaScript
- 44 道 JavaScript 難題(JavaScript Puzzlers!)JavaScript
- [Javascript] Understanding JavaScript Proxies with Symbol.toPrimitiveJavaScriptSymbolMIT
- JavaScript 教程之JavaScript常用框架簡介JavaScript框架
- [Javascript] Perform Set Operations using JavaScript Set MethodsJavaScriptORM
- javascript — == vs ===JavaScript
- JavaScript selectedIndexJavaScriptIndex
- JavaScript deleteCell()JavaScriptdelete
- JavaScript lastElementChildJavaScriptAST
- JavaScript hasAttribute()JavaScript
- JavaScript getAttributeNode()JavaScript
- JavaScript replaceChild()JavaScript
- JavaScript remove()JavaScriptREM
- JavaScript appendChild()JavaScriptAPP
- JavaScript deleteRow()JavaScriptdelete
- JavaScript clientYJavaScriptclient
- JavaScript之thisJavaScript
- JavaScript isFinite()JavaScript
- JavaScript toggle()JavaScript
- JavaScript Boolean()JavaScriptBoolean
- JavaScript escape()JavaScript
- JavaScript parseFloat()JavaScript
- JavaScript unescape()JavaScript
- JavaScript call()JavaScript
- JavaScript bind()JavaScript
- JavaScript previousElementSiblingJavaScript
- JavaScript preventDefault()JavaScript
- JavaScript insertRow()JavaScript
- JavaScript isPrototypeOf()JavaScript