使用JavaScript迭代物件鍵的方法

WBOY
發布: 2023-08-27 09:17:12
原創
776 人瀏覽過

使用JavaScript迭代物件鍵的方法

自訂物件無法使用 for...of 迴圈進行迭代。此外,您不能使用 map() forEach() 等迭代器方法。如果您這樣做,您將在每個實例中收到 TypeError

相反,請使用 for...in 來迭代物件。此方法迭代物件的所有可枚舉、非符號屬性。

在下面的範例中,我們使用它來迭代obj 的所有三個屬性,並且對於每個屬性,我們記錄一個由屬性名稱(即其鍵)及其對應值組成的字串。

var obj = {a: 1, b: 2, c: 3};

for (const prop in obj) {
  console.log(`obj.${prop} = ${obj[prop]}`);
}

// Output:
// "obj.a = 1"
// "obj.b = 2"
// "obj.c = 3"
登入後複製

我們使用變數 prop 初始化循環,該變數將在物件屬性的每次迭代中保存不同的屬性名稱(也稱為鍵)。區塊中指定的程式碼將在每次迭代時運行。

這裡有一個小示範來示範這一點(點擊結果查看輸出):

在循環內,每次迭代時,我們都會將物件的屬性名稱和值之一記錄到控制台。

迭代物件屬性的另一種方法是將物件傳遞到 Object.entries() 中並呼叫該方法。這將傳回多維數組(數組的數組)內該物件的所有可枚舉屬性:

const obj = {a: 1, b: 2, c: 3};

let result = Object.entries(obj)

console.log(result)
// [["a", 1], ["b", 2], ["c", 3]]
登入後複製

然後我們可以使用任何陣列迭代器方法循環它:

#
Object.entries(obj).forEach(entry => {
  // do something
})

Object.entries(obj).map(entry => {
  // do something
})

Object.entries(obj).every(entry => {
  // do something
})


登入後複製

您也可以使用 for...of 迴圈:

for (const entry of Object.entries(obj)) {
  // do something
}

for (const [key, value] of Object.entries(obj)) {
  // do something
}
登入後複製

以下是一些示範:

在這裡,因為我們在每次迭代中得到一個由鍵和值組成的數組,所以我們只需分別使用entry[0]entry[1]來訪問它們。如果您只需要鍵而不是鍵和值,請使用 Object.keys() 來取代 Object.entries()

for...of 基本上相同:

結論

這些是我們可以在 JavaScript 中輕鬆迭代物件的屬性和鍵的方法。查看我們的 JavaScript 帖子以獲取更多文章和教程。

以上是使用JavaScript迭代物件鍵的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!