Skip to content
miyaliu666 edited this page Jun 22, 2017 · 6 revisions

这是FCC中国学员的维基百科,欢迎大家来这里写自己的学习心得和解题思路。 我们在公众号FreeCodeCamp设置“课程导读”专栏,每周定期把优秀的解题思路分享给更多小伙伴参考。 S1ngS1ng同学一直坚持贡献算法部分的解题思路,其他部分我们和Rafael J. Rodriguez沟通后,从他的wiki引用,非常详细,不过是英文版,欢迎感兴趣的小伙伴一起来翻译。


题目:猴子吃香蕉。传送门:https://freecodecamp.cn/challenges/chunky-monkey

题意:把一个大数组按照指定的大小分割成几个小数组。

根据gitter中文频道的用户反馈,还是有不少同学卡在这里。

为了便于小伙伴理解,我思考许久,找到一个形象例子:

厨师是如何切香蕉的?

先从香蕉头部开始切起,每一段2厘米,剩余的部分作为一段。

头部就是i=0,2厘米就是步长(size)。

切这个动作对应的就是数组的slice方法。

每切完一段,我们就把它装盘(push)。

最后把盛满香蕉的盘子(result)端给客人,完成任务。

把上面的文字翻译成代码,就是:

function chunkArrayInGroups (arr, size) {
    for (var i = 0, result=[]; i < arr.length; i += size){
        result.push(arr.slice(i, i + size));
    }
    return result;
}

编程中有很多相对枯燥的概念,理解起来很困难。

遇到这种时候,要学会类比,主动找到生活中一些类似的概念,这样理解起来会很轻松。

希望对大家有帮助,也欢迎大家点击右上角的New Page来写自己的学习心得。^_^

Clone this wiki locally