返回JavaScript函数的变量值

返回JavaScript函数的变量值,javascript,arrays,function,Javascript,Arrays,Function,伙计们,我有一个JavaScript函数,它应该返回一个带有值的数组。以下是函数: let finalInput; 让输入; 函数getCorrectInput(输入,finalInput){ 输入=提示(“键入客户端类型,后跟”+ “半圆和以逗号分隔的日期”+ “(以下示例:奖励:2019年1月31日(工作日),2020年1月1日(工作日)):”; while(输入===未定义| |输入===空| |输入===''){ 输入=提示(“键入客户端类型,后跟”+ “半圆和以逗号分隔的日期”+ “

伙计们,我有一个JavaScript函数,它应该返回一个带有值的数组。以下是函数:

let finalInput;
让输入;
函数getCorrectInput(输入,finalInput){
输入=提示(“键入客户端类型,后跟”+
“半圆和以逗号分隔的日期”+
“(以下示例:奖励:2019年1月31日(工作日),2020年1月1日(工作日)):”;
while(输入===未定义| |输入===空| |输入===''){
输入=提示(“键入客户端类型,后跟”+
“半圆和以逗号分隔的日期”+
“(以下示例:奖励:2019年1月31日(工作日),2020年1月1日(工作日)):”;
} 
如果(输入)
返回
finalInput=input.split(',');
返回最终输入
}

getCorrectInput()
您有两个名为
finalInput
的变量

  • 第1行中定义的一个,在
    finalInput[0]
    之前您不会接触它(因此它是未定义的)
  • 第3行定义为函数参数的参数
您使用
return finalInput
返回第二个,但从未将其分配到任何位置(在
getCorrectInput()之前没有任何内容)

  • 删除第二个的声明,因为您从未将其作为参数传入
  • 使用函数中的
    let
    定义局部变量
  • 在某处指定返回值
  • 例如:

    同时删除以下内容:


    因为它没有明显的原因而提前退出函数。

    您在返回所需逻辑之前返回。因此:

    if (input) 
        return // CHANGE THIS
    
    将其更改为:

    if (input) {
        return input.split(',');
    }
    
    现在它只返回一个
    未定义的
    值,因为有输入。如果您想要一个条件来检查是否没有值,那么您需要执行
    If(input===null | | input===undefined){//LOGIC}
    来检查您是否没有得到输入。

    您有这样的功能:

     if (input) 
        return 
    

    因此,如果存在
    input
    ,则返回undefined,因为您不返回任何内容,而且您永远不会到达返回finalInput的部分。

    这里的问题是您对输入变量的检查,当存在用户条目时,表达式始终为true,并且它将结果提供给无法访问的语句

    因此,要解决此问题,您需要更改对“input”变量的检查,如下所示:

    • 如果(输入==null)
    你还好吗

    let finalInput;
    让输入;
    函数getCorrectInput(输入,finalInput){
    输入=提示(“键入客户端类型,后跟”+
    “半圆和以逗号分隔的日期”+
    “(以下示例:奖励:2019年1月31日(工作日),2020年1月1日(工作日)):”;
    while(输入===未定义| |输入===空| |输入===''){
    输入=提示(“键入客户端类型,后跟”+
    “半圆和以逗号分隔的日期”+
    “(以下示例:奖励:2019年1月31日(工作日),2020年1月1日(工作日)):”;
    } 
    如果(输入==null)
    返回
    finalInput=input.split(',');
    返回最终输入
    }
    //只是为了记录你的结果
    var result=getCorrectInput()
    
    console.log(result)
    A
    中提示
    ,而
    循环是一个糟糕的选择;我想把它从问题中完全删除,因为你不能“取消”它。也就是说,
    如果(输入)返回
    。。。如果
    input
    是任何真实值,则该函数将退出。在一个基本问题中,我看到
    return
    不带分号。我想知道,我还需要进一步阅读吗?注意,
    return
    后跟一个换行符,解析为
    return
    。条件
    if(input)
    是无意义的,在循环后,此条件始终为
    true
    return
    退出函数,return
    undefined
    可能需要检查拼写它可能是
    if(!input)
    if (input) {
        return input.split(',');
    }
    
     if (input) 
        return