簡體   English   中英

無法在 object 上使用 for of 循環遍歷我的 object

[英]Not able to iterate through my object using for of loop over an object

我正在嘗試遍歷 object 但出現錯誤

 const myObj = { number1: 4, number2: 10 } for (const key of myObj) { console.log(`${key}: ${myObj[key]}`); }

而是得到一個控制台錯誤

你實際上犯了一個非常小的錯誤。 您正在創建一個 object 並使用for.. of ,但for..of用於迭代數組。 使用for..in代替它迭代 object 鍵。

這是您的工作演示:

const myObj = {
  number1: 4,
  number2: 10
}
    for (const key in myObj) {
  console.log(`${key}: ${myObj[key]}`);
}

使用for..in代替for..of

for...in語句遍歷 object 的所有可枚舉屬性,這些屬性以字符串為鍵(忽略以Symbol為鍵的),包括繼承的可枚舉屬性。

for...of語句創建一個循環迭代可迭代對象,包括:內置StringArray 、類數組對象(例如argumentsNodeList )、 TypedArrayMapSet和用戶定義的可迭代對象。 它調用一個自定義迭代鈎子,其中包含要為 object 的每個不同屬性的值執行的語句。

下面試試。

 const myObj = { number1: 4, number2: 10 } for (const key in myObj) { console.log(`${key}: ${myObj[key]}`); }

in替換

for...of用於字符串、數組、類數組對象。

in是一個運算符,如果指定的屬性在specified object中,則返回true

 const myObj = { number1: 4, number2: 10 } for (const key in myObj) { console.log(`${key}: ${myObj[key]}`); }

您的錯誤是在循環中使用for... of而不是for... in 要遍歷 object 我認為使用 Object 方法更好地處理您的數據:

Object.entries(myObj2).forEach(([key, value]) => console.log(key, value))

您還可以使用只為您提供鍵和值的鍵方法,該方法只為您提供值。

這是一個很好的變體,這很完美:

const myObj = {
  number1: 4,
  number2: 10,
};

Object.keys(myObj).forEach((key) => {
  console.log(`${key}: ${myObj[key]}`);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM