-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Home
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来写自己的学习心得。^_^