function checkData(data){
//最多十个
if(data.length>10){
//保留后十个
data.shift();
if(data.length==10){
//这里返回出错,是什么原因
return data;
}else{
checkData(data);
};
}else{
return data;
}
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
先不说算法优劣哈!
你的问题是你使用了嵌套调用,但是里面的调用没有将数据返回(也就是说,你只处理了数据,并没有将数据返回),别死死的盯着你data.length === 10 那里的返回。
你把checkData那里更改为:
如果你还是有些不理解,我这样给你打比方。我们用A表示你这里的checkData方法,A1表示第一次调用,A2表示第二次调用,一直到An此调用,An次的时候length为10了,返回了。是的,返回了。但是仅仅是给了An-1的次,An-1又不会给An-2,也肯定不会给A1。所以,你看到的就是undefined。
这应该明白了吧!