javascript - 昨晚写了一个控制数组长度的函数,可返回后变成undifined的了。
阿神
阿神 2017-04-11 11:29:05
[JavaScript讨论组]

function checkData(data){

//最多十个
if(data.length>10){
    //保留后十个
    data.shift();
    if(data.length==10){
        //这里返回出错,是什么原因
        return data;
    }else{
        checkData(data);
    };
}else{
    return data;
}

}

阿神
阿神

闭关修行中......

全部回复(1)
天蓬老师

先不说算法优劣哈!

你的问题是你使用了嵌套调用,但是里面的调用没有将数据返回(也就是说,你只处理了数据,并没有将数据返回),别死死的盯着你data.length === 10 那里的返回。

你把checkData那里更改为:

return checkData(data);

如果你还是有些不理解,我这样给你打比方。我们用A表示你这里的checkData方法,A1表示第一次调用,A2表示第二次调用,一直到An此调用,An次的时候length为10了,返回了。是的,返回了。但是仅仅是给了An-1的次,An-1又不会给An-2,也肯定不会给A1。所以,你看到的就是undefined。

这应该明白了吧!

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号