gpt4 book ai didi

javascript - for 循环、console.log、返回、未定义和作用域

转载 作者:行者123 更新时间:2023-12-01 01:16:41 24 4
gpt4 key购买 nike

对这个初学者问题表示歉意,但我将其发布在这里作为试图了解其实际工作原理的最后手段。我遇到的问题是我必须使用 repl.it 完成一些练习,其中使用 console.log 打印到控制台返回未定义。例如,如果我在其中运行以下代码:

function countdown(num) {
for (let i = num; i > 0; i--) {
console.log(i)
}
};
countdown(10);

它打印:

10
9
8
7
6
5
4
3
2
1
=> undefined

现在,当我在 VS Code 中运行此代码时,它会生成相同的内容,但底部没有未定义的内容。因为我必须使用 repl.it 并且不想打印 undefined,所以我应该使用 return 对吗?无论如何,在这种情况下使用 return 更好。所以我改变了我的代码,但是当然在 for 循环代码块中使用 return 会阻止循环运行,这是不好的。那么我就这样做:

function countdown(num){
let count = 0;
for (let i = num; i > 0; i--){
count = i;
}
return count;
};
console.log(countdown(10));

但是我只得到了 1 个返回值。所以我的问题是,如何在不使用 console.log() 和任何方法并使用 return 关键字的情况下返回迭代倒计时?这纯粹是为了我的理解,而不是为了任何特定的功能。非常感谢,并对我的困惑提前表示歉意。

最佳答案

how can I return an iterated countdown without using console.log() and any methods and by using the return keyword

您可以使用生成器获得迭代返回值,但您必须在每次迭代时产生值,而不是在最后使用return:

function* countdown(num) {
for (let i = num; i > 0; i--) {
yield i;
}
};
console.log(...countdown(10));

或者您可以创建一个数组并返回它:

function countdown(num) {
const arr = [];
for (let i = num; i > 0; i--) {
arr.push(i);
}
return arr;
};
console.log(countdown(10));

关于javascript - for 循环、console.log、返回、未定义和作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54689142/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com