Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 递归附加到三元运算符不起作用的数组_Javascript_Arrays_Recursion_Conditional Operator - Fatal编程技术网

Javascript 递归附加到三元运算符不起作用的数组

Javascript 递归附加到三元运算符不起作用的数组,javascript,arrays,recursion,conditional-operator,Javascript,Arrays,Recursion,Conditional Operator,我试图创建一个递归函数,返回一个整数数组 如果使用三元运算符,则基本情况返回“undefined”。我看不出问题出在哪里 使用JSLint,我得到了这样一条信息:“在paren中包装一个三元表达式,在左paren后面加一个换行符。” 守则: function rangeOfNumbers(startNum, endNum) { return startNum === endNum ? startNum : rangeOfNumbers(startNum, endNum - 1

我试图创建一个递归函数,返回一个整数数组

如果使用三元运算符,则基本情况返回“undefined”。我看不出问题出在哪里

使用JSLint,我得到了这样一条信息:“在paren中包装一个三元表达式,在左paren后面加一个换行符。”

守则:

function rangeOfNumbers(startNum, endNum) {
  return startNum === endNum
    ? startNum
    : rangeOfNumbers(startNum, endNum - 1).concat(endNum);
}

在最初的示例中,您只是返回startNum,这是一个数字。相反,我们希望返回一个包含startNum的数组,以便在返回时连接该值

试试这个:

function rangeOfNumbers(startNum, endNum) {
  return startNum === endNum
    ? [startNum]
    : rangeOfNumbers(startNum, endNum - 1).concat(endNum);
}

如果你这样做会怎么样<代码>(startNum==endNum)?startNum:RangeofNumber(startNum,endNum-1)。concat(endNum)我认为您需要将startNum作为数组返回。否则,它不能只计算一个数字。@kvr我认为这会使JSLint警告消失。但这不应该是函数返回未定义的
的原因。三元运算符的运算符优先级低于表达式中的任何其他运算符,因此它应该按照OP期望的方式进行解析@kvr JSLint警告将继续显示,如果我使用rangeOfNumber(5,5)调用函数,函数将继续返回“undefined”