Javascript - 为什么下面的函数定义错误

Javascript - Why below function definition errors out?

本文关键字:函数 定义 错误 为什么 Javascript      更新时间:2023-09-26
var a = [3,5,2,6,8];
var i = 0;
function x(a[i]) { //This line errors out, why?
}

请解释为什么上面的行错误? 我正在尝试使用递归以相反的顺序打印数组元素。如果你也能写代码,那就太棒了!

将值传递给函数定义。 你必须在调用函数时给出它,而不是在定义时功能。调用函数时可以传递值。

var a = [3,5,2,6,8];
var i = 0;
function x(t) { 
}
x(a[i]);

您错误地定义了带有参数的函数。您可以为函数参数命名,就像任何其他变量一样:

function x(array) {
  //Do something with your array
}

然后你调用函数:

var a = [1,2,3,4,5];
x(a);

正如你可以在其他答案上读到的,你有点混合了函数声明和函数计算(调用)。

这将声明接受a参数的函数x

function x(a) {
}

这将调用带有参数a x的函数:

var a = [3,5,2,6,8];
x(a);

或直接:

x([3,5,2,6,8]);

关于反转数组的递归函数,这可能是一个选项:

var a = [3,5,2,6,8];
function x(a) {
    if (a.length === 0) {
        return [];
    }
    return a.slice(-1).concat(x(a.slice(0, -1)));
}

使用递归:

var a = [3,5,2,6,8];
function x(p, len) {
   if(len >= 0){
     alert(p[len-1]);        
     x(p, len-1);
   }    
}
// and call
x(a, 5);

演示