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

javascript return返回的不是预期结果

javascript return返回的不是预期结果

Walk_ 2016-07-09 08:41:50
 var test=[1,2,3,4,5,6,7,8,9,10,11,12]; test=checkData(test); console.log(test); function checkData(data){ //最多十个 if(data.length>10){ //保留后十个 data.shift(); if(data.length==10){ alert(data) return data; }else{ checkData(data); }; }else{ return data; } }实际为什么返回是undefined?
查看完整描述

1 回答

?
woshiajuana

TA贡献211条经验 获得超152个赞

var test=[1,2,3,4,5,6,7,8,9,10,11,12];
test=checkData(test);
console.log(test);
function checkData(data){
   //最多十个
   if(data.length>10){
       //保留后十个
       data.shift();
       if(data.length==10){
           alert(data)
           console.log(data.length)
           return data.length;
       }else{
           checkData(data);
       };
   }else{
       return data;
   }
   return data;
}


少了个return,你这种进入那个else{checkData(data);};递归写的return返回后就是一个else{ data结果},所以进入递归就表示你少了个返回,有点难解释

查看完整回答
1 反对 回复 2016-07-09
  • 1 回答
  • 0 关注
  • 1327 浏览
慕课专栏
更多

添加回答

举报

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