在 for..in 循环中实现条件
Implement condition in for..in loop
我正在查看来自 MDN 文档的 for..in 教程
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in
该示例遍历对象的属性并打印所有内容。仅当对象 属性 的值为 3 时,我才尝试打印。有人可以帮助我了解我哪里出错了。如果可能的话还要解释一下。
const object = { a: 1, b: 2, c: 3 };
for (const property in object.c == 3) {
console.log(`${property}: ${object[property]}`);
}
for...in
循环不能有条件。¹ 您必须在循环中将条件实现为 if
:
for (const property in object) {
if (object[property] === 3) {
console.log(`${property}: ${object[property]}`);
}
}
我假设你想要 any 属性 值 3
,而不仅仅是 c
(因为没有需要循环)。
¹ "for...in
循环不能有条件" 那你为什么没有得到错误呢?因为您的代码在语法上是正确的,所以它没有达到您的预期。
for (const property in object.c == 3)
是这样计算的:
计算object.c == 3
的结果。现在我们有:
for (const property in true) // or `in false`
由于for...in
只适用于对象,将布尔基元转换为布尔对象。现在我们有:
for (const property in new Boolean(true)) // or `in new Boolean(false)`
因为 Boolean
对象没有可枚举的属性,所以循环从不做任何事情。
你必须一步一步地完成每一项任务。 for in 循环用于迭代。之后,您使用 if 条件检查 属性 是否等于 3。检查以下代码:
const object = { a: 1, b: 2, c: 3 };
for (const property in object) {
if(object[property]===3)
console.log(`${property}: ${object[property]}`);
}
看起来你想同时使用 for 和 if。
你应该试试这个:
const object = { a: 1, b: 2, c: 3 };
for (const property in object) {
if(object[property]==3){
console.log(`${property}: ${object[property]}`);
}
}
我正在查看来自 MDN 文档的 for..in 教程
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in
该示例遍历对象的属性并打印所有内容。仅当对象 属性 的值为 3 时,我才尝试打印。有人可以帮助我了解我哪里出错了。如果可能的话还要解释一下。
const object = { a: 1, b: 2, c: 3 };
for (const property in object.c == 3) {
console.log(`${property}: ${object[property]}`);
}
for...in
循环不能有条件。¹ 您必须在循环中将条件实现为 if
:
for (const property in object) {
if (object[property] === 3) {
console.log(`${property}: ${object[property]}`);
}
}
我假设你想要 any 属性 值 3
,而不仅仅是 c
(因为没有需要循环)。
¹ "for...in
循环不能有条件" 那你为什么没有得到错误呢?因为您的代码在语法上是正确的,所以它没有达到您的预期。
for (const property in object.c == 3)
是这样计算的:
计算
object.c == 3
的结果。现在我们有:for (const property in true) // or `in false`
由于
for...in
只适用于对象,将布尔基元转换为布尔对象。现在我们有:for (const property in new Boolean(true)) // or `in new Boolean(false)`
因为
Boolean
对象没有可枚举的属性,所以循环从不做任何事情。
你必须一步一步地完成每一项任务。 for in 循环用于迭代。之后,您使用 if 条件检查 属性 是否等于 3。检查以下代码:
const object = { a: 1, b: 2, c: 3 };
for (const property in object) {
if(object[property]===3)
console.log(`${property}: ${object[property]}`);
}
看起来你想同时使用 for 和 if。
你应该试试这个:
const object = { a: 1, b: 2, c: 3 };
for (const property in object) {
if(object[property]==3){
console.log(`${property}: ${object[property]}`);
}
}