[英]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
语句遍历 object 的所有可枚举属性,这些属性以字符串为键(忽略以Symbol为键的),包括继承的可枚举属性。
for...of
语句创建一个循环迭代可迭代对象,包括:内置String
、Array
、类数组对象(例如arguments
或NodeList
)、 TypedArray
、 Map
、 Set
和用户定义的可迭代对象。 它调用一个自定义迭代钩子,其中包含要为 object 的每个不同属性的值执行的语句。
下面试试。
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.