我将展示我的代码和一些图像来演示该问题。
诸如变量声明或使用 log 函数之类的简单语句会导致 json 结果未定义。当我输入文本时,将执行 ajax 调用并返回数据。
已更新这是我作为文本包含的代码。当复制并粘贴代码时,缺少花括号的问题非常明显。正如您在图片中看到的那样,VS 2017 并不能帮助您轻松注意到缺失的大括号,他们可以改进它。
for (var i = 0; i < data.length; i++)
console.log("some message");
console.log(data[i].titulo);
删除语句:
现在检查一下,当 for 循环中有一个语句时,它似乎只被评估一次。
当我执行该语句时,“i is x”被执行了更多次。
最佳答案
与您使用的 json 无关。纯粹关于 for 循环,不使用花括号。
您缺少循环的 {}
。如果没有 {},则只有第一个语句属于 for
循环
所以在你的情况1中,你的代码等于
for ( ..) {
console.log(..);
}
console.log(data[i]...)
它在情况 2 中有效,因为您删除了控制台日志语句,因此它等于
for ( ..) {
console.log(data[i]...)
}
如果您想在 for 循环中使用这两个语句,请使用 {}
for ( ..) {
console.log(..);
console.log(data[i]...)
}
不仅要拥有多个语句,即使对于单个语句,也请尝试始终使用 {} 以避免这样的混淆。
关于javascript - for 循环中的奇怪行为,语句不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49030174/