我是个编程新手。我在理解函数方面有一些困难。所以我做了练习。但是,我不知道为什么要用return。
我的密码起作用了。
在本例中:函数名是reverse。2我在函数中返回一个数组[1,2,5,8]。3 Console.log返回一个名为reverted的新数组。
function reverse(array) {
const reversed = [];
for (i = array.length - 1; i > -1; i--) {
reversed.push(array[i]);
}
console.log(reversed);
}
return reverse([1, 2, 5, 8]);
- 但为什么在验证exercice后,它说我错了,并向我发送此解决方案:**
function reverse(array) {
const reversed = [];
for (let i = array.length - 1; i > -1; i--) {
reversed.push(array[i]);
}
return reversed;
}
谢谢:)
我谷歌和使用聊天gpt教我为什么使用回报在我的情况下。但是,没有什么关于我可以理解。。我需要你的帮助。
谢谢大家。
2条答案
按热度按时间7cwmlq891#
变量
reversed
是在函数体内部定义的,因此只能从函数内部访问。在代码中,您试图从函数外部访问该变量。return
关键字在函数内部用于返回值,在函数外部使用return
无效。vx6bjr1n2#
一些备注:
reverse
和reversed
非常相似,这可能会导致混淆。我在另一个答案和您的注解中看到了这种情况。reverse
被定义为函数,reversed
是引用数组的局部变量。它们是完全不同的对象。return
语句。return
语句只能出现在函数体内。console.log(reversed)
将在控制台窗口中输出结果,但这并不是本练习的目的。虽然console.log
在调试代码时非常有用,但它并不等同于 return value。函数的调用者将获得函数使用return
语句返回的返回值,而不是console.log
的输出。let
(或var
)定义i
,因此它被隐式声明为全局变量。这不是一个好的做法。请始终显式定义变量。reverse
函数。这是你通常会做的 * 测试 * 你的函数,但在代码挑战中,这个调用通常是由测试你的实现的人或框架做出的。这些测试会调用它不止一次,用不同的数组作为参数,通常包括边界情况,比如一个空数组,或者一个非常大的数组。因此,当您调试代码时,您将调用该函数并打印它 * 返回 * 的值,如下所示:
也许我还应该提一下
reverse
也是一个数组的原生方法,它会反转数组本身,而不是创建一个新的数组(如上所述),如果目的是总是创建一个新的数组,你仍然可以使用它:首先创建一个给定数组的副本,反转副本并返回: