猿问

javascript return返回的不是预期结果

 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?


Walk_
浏览 1358回答 1
1回答

woshiajuana

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结果},所以进入递归就表示你少了个返回,有点难解释
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答