天天看點

【前端】Object.keys()的使用方法及數組周遊,Object.keys(object).forEach(e => {您的代碼})Object.keys()的使用方法及數組周遊

本文目錄

Object.keys()的使用方法及數組周遊

方法一:forEach()

方法二:for()方法

Object.keys()的使用方法及數組周遊

Object.keys()用于獲得由對象屬性名組成的數組,可與數組周遊相結合使用,非常好用。和for...in方法功能類似,但有使用差別!

數組周遊可以用for()或forEach()來實作,forEach()方法是ECMAScript5定義的周遊數組的一個新方法,按照索引的順序挨個傳遞給定義的函數;

接下來就Object.keys()分别結合for()和forEach()使用進行運用,用console.info()輸出到控制台,代碼如下:

方法一:forEach()

// 建立對象
var person = {
    name: 'hjm',
    age: 18,
    school:"SKD University",
    home: 'China'
}

// 用forEach()進行周遊
var keys = Object.keys(person).forEach(function (e) {
    console.log("person ", e, ": ", person[e]);
});
           

運作的結果如下圖所示: 

【前端】Object.keys()的使用方法及數組周遊,Object.keys(object).forEach(e => {您的代碼})Object.keys()的使用方法及數組周遊

方法二:for()方法

// 建立一個對象
var person = {
    name: 'hjm',
    age: 18,
    school:"SKD University",
    home: 'China'
}

// 獲得對象屬性名組成的數組
var keys = Object.keys(person);

// 用于存儲比對的屬性值
var value = [];

// 用for進行周遊
for (var i = 0,len = keys.length; i < len; i++) {
    var key = keys[i];
    value[i] = person[key];
    console.log("person ", key, ": ", value[i]);
}
           

運作的結果如下圖所示:

【前端】Object.keys()的使用方法及數組周遊,Object.keys(object).forEach(e => {您的代碼})Object.keys()的使用方法及數組周遊

兩種方法的結果是一樣的,至于使用哪種方法,就智者見智,仁者見仁了。

for():用起來比較容易上手,但太羅嗦;

forEach():和相關的周遊方法結合,使得數組擁有簡單而強大的函數式程式設計風格,更加強大。

Tips:for...in會周遊整個原型鍊,這可能不是你所期望的結果,然後從性能角度上看Object.keys會更優。在一些eslint的規則中也預設禁用了forin循環。

拓展: JS幾種數組周遊方式總結(包括各自周遊的性能分析):https://blog.csdn.net/function__/article/details/79555301

繼續閱讀