为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我这样给数组赋值然后return赋值后的数组是undefined

为什么我这样给数组赋值然后return赋值后的数组是undefined

素胚勾勒不出你 2019-04-21 20:19:51
先上代码:javascriptvarvalue=[1,2,3,4,5,6];varresult=[];vari;functionfind(i){if(i
查看完整描述

2 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

varvalue=[1,2,3,4,5,6];
varresult=[];
vari;
functionfind(i){
if(i<4){
result[i]=value[i]
find(i+1);
}
returnresult;
}
find(0);
你实际上是添加进去了的,但只是没有打印出来而已。不信你执行完你的代码再console.log(result)试试。那为啥没打印出来呢?因为控制台执行完之后返回的是find(0)函数的返回值,而find(0)中并不会进入else语句中,所以自然没有返回值。有人会说不是还有find(4)嘛?,那么我请问,find(4)你打印了么?
                            
查看完整回答
反对 回复 2019-04-21
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

没有return函数的返回值为undefined
varvalue=[1,2,3,4,5,6];
varresult=[];
vari;
functionfind(i){
if(i<4){
result[i]=value[i]
returnfind(i+1);
}else{
returnresult;
}
}
find(0);
//或者你可以这样写
varvalue=[1,2,3,4,5,6];
varresult=[];
vari;
functionfind(i){
if(i<4){
result[i]=value[i]
find(i+1);
}
}
find(0);
console.log(result);//就是你想要的结果
                            
查看完整回答
反对 回复 2019-04-21
  • 2 回答
  • 0 关注
  • 279 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信