用 console.log 打印后数组元素未定义??似乎只在我删除该行后才定义..? (Javascript)
Array element not defined after I print it with console.log?? Seems to be only defined after I remove that line..? (Javascript)
我想 return 下面数组中的真实值的数量。
const array = [1,2,3,'',2];
function countTruthy (array) {
let numberCount = 0;
for (let item of array)
console.log(item)
if (item) numberCount++;
return numberCount;
但这只有在我删除此行后才有效。
console.log(item)
否则我会得到:Uncaught ReferenceError: item is not defined
在 countTruthy?
为什么?
奖金问题 - 无论我的 return 语句如何缩进,我得到的结果都是一样的......但它应该在“if 语句”还是“for 循环”下?为什么?
您似乎遗漏了一些范围(即“{ }”)。对于您当前的实现,for 语句将只执行 console.log
这就是为什么如果您删除它然后它执行 if(item)...
并且所有工作
尝试
for (let item of array) {
console.log(item);
if (item) {
numberCount++;
}
}
return numberCount;
需要注意的一件重要事情是 Javascript 不是一种“位置”语言,因此无论您如何缩进代码,它都会执行相同的代码,重要的是括号。
这似乎是一个缩进问题。使用方括号关闭函数和 for 循环,如下所示:
const array = [1,2,3,'',2];
function countTruthy (array) {
let numberCount = 0;
for (let item of array) {
console.log(item)
if (item) numberCount++;
}
return numberCount;
}
希望这对你有用:
当您在“for”、任何循环或条件中不使用大括号“{}”时,该过程仅采用下一行。在你的情况下,如果你删除日志,该项目被“for”识别,但如果你在下一行添加日志,因为它没有键“{}”,“for”只能与下一行,该项目不再属于“for”,因此不再被识别,您必须在“for”
之外声明它
const array = [1,2,3,'',2];
function countTruthy (array) {
let numberCount = 0;
for (let item of array)
{
console.log(item);
if (item) numberCount++;
}
return numberCount;
}
countTruthy(array);
我想 return 下面数组中的真实值的数量。
const array = [1,2,3,'',2];
function countTruthy (array) {
let numberCount = 0;
for (let item of array)
console.log(item)
if (item) numberCount++;
return numberCount;
但这只有在我删除此行后才有效。
console.log(item)
否则我会得到:Uncaught ReferenceError: item is not defined 在 countTruthy?
为什么?
奖金问题 - 无论我的 return 语句如何缩进,我得到的结果都是一样的......但它应该在“if 语句”还是“for 循环”下?为什么?
您似乎遗漏了一些范围(即“{ }”)。对于您当前的实现,for 语句将只执行 console.log
这就是为什么如果您删除它然后它执行 if(item)...
并且所有工作
尝试
for (let item of array) {
console.log(item);
if (item) {
numberCount++;
}
}
return numberCount;
需要注意的一件重要事情是 Javascript 不是一种“位置”语言,因此无论您如何缩进代码,它都会执行相同的代码,重要的是括号。
这似乎是一个缩进问题。使用方括号关闭函数和 for 循环,如下所示:
const array = [1,2,3,'',2];
function countTruthy (array) {
let numberCount = 0;
for (let item of array) {
console.log(item)
if (item) numberCount++;
}
return numberCount;
}
希望这对你有用:
当您在“for”、任何循环或条件中不使用大括号“{}”时,该过程仅采用下一行。在你的情况下,如果你删除日志,该项目被“for”识别,但如果你在下一行添加日志,因为它没有键“{}”,“for”只能与下一行,该项目不再属于“for”,因此不再被识别,您必须在“for”
之外声明它const array = [1,2,3,'',2];
function countTruthy (array) {
let numberCount = 0;
for (let item of array)
{
console.log(item);
if (item) numberCount++;
}
return numberCount;
}
countTruthy(array);