返回JavaScript函数的变量值
伙计们,我有一个JavaScript函数,它应该返回一个带有值的数组。以下是函数:返回JavaScript函数的变量值,javascript,arrays,function,Javascript,Arrays,Function,伙计们,我有一个JavaScript函数,它应该返回一个带有值的数组。以下是函数: let finalInput; 让输入; 函数getCorrectInput(输入,finalInput){ 输入=提示(“键入客户端类型,后跟”+ “半圆和以逗号分隔的日期”+ “(以下示例:奖励:2019年1月31日(工作日),2020年1月1日(工作日)):”; while(输入===未定义| |输入===空| |输入===''){ 输入=提示(“键入客户端类型,后跟”+ “半圆和以逗号分隔的日期”+ “
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
退出函数,returnundefined
可能需要检查拼写它可能是if(!input)
if (input) {
return input.split(',');
}
if (input)
return