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

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

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

潇潇雨雨 2019-04-08 09:21:51
先上代码:javascriptvarvalue=[1,2,3,4,5,6];varresult=[];vari;functionfind(i){if(i
查看完整描述

2 回答

?
温温酱

TA贡献1752条经验 获得超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-08
?
波斯汪

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

没有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-08
  • 2 回答
  • 0 关注
  • 750 浏览
慕课专栏
更多

添加回答

举报

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