1
luikore 2013-10-04 11:43:00 +08:00
9 minutes, 0 seconds
最后一题判断 array type 用了点 hack... |
2
luikore 2013-10-04 11:46:15 +08:00
如果是 coffee 就可以快很多, 后面的问题可以一个 list comprehension 写出来
|
3
darcy 2013-10-04 11:48:34 +08:00
17 minutes
话说这才提醒我快1年没写过JavaScript了。 |
4
zhujinliang 2013-10-04 12:01:50 +08:00
6 minutes, 1 seconds for all 5 levels. Well done!
主要时间浪费在读题以及解决实际跑的过程中遇到的意外,两三道题中题目本身未涉及类型判断问题,一开始我就没做判断,结果测试时给了意外的类型,还得修改代码 |
5
angelface 2013-10-04 12:21:50 +08:00
我很喜欢这个编辑器
|
6
justfly 2013-10-04 13:18:26 +08:00
8分56秒
判断数组 可耻的用了 google |
7
dongsheng 2013-10-04 14:26:52 +08:00
17,忘记javascript的正则怎么写了 -_-
|
8
windylcx 2013-10-04 14:41:31 +08:00
8 分多..打开控制台调试了多次.面壁去.
|
11
mengzhuo 2013-10-04 17:02:46 +08:00
最后一题不是用递归?
``` if (typeof(i[s]) =='object'){ sum += arraySum(i[s]); } ``` 6 minutes, 43 seconds for all 5 levels. Well done! |
12
mengzhuo 2013-10-04 17:04:07 +08:00
体会是:
果然Python写多了…… JS功力不如当年了…… 思路也渐渐和Python靠拢了 |
13
luin 2013-10-04 17:41:52 +08:00
3分多,扩展名那道题忘了 js 里咋用正则了,直接用了 indexOf,看 9 楼发现其实自己写错了,不过没被发现= =
|
14
qiukun 2013-10-04 17:54:49 +08:00
typeof [1, 2, 4] === 'object'; // use Array.isArray or Object.prototype.toString.call to differentiate regular objects from arrays
|
15
binux 2013-10-04 18:35:12 +08:00
7 minutes, 28 seconds
大部分时间在读题。。判断是否是字符串很可耻地 if (e.split) 。。。 |
16
zhujinliang 2013-10-04 19:23:49 +08:00
|
17
pepsin 2013-10-04 19:34:10 +08:00
擦,好多函数名压根忘了,我居然还是个前端。。。
|
18
sivacohan 2013-10-04 21:05:46 +08:00
我会说我最后一道题查了手册还搞了9分钟嘛……
最后用了parseInt…… |
19
efi 2013-10-04 21:33:09 +08:00
7分半。文件后缀的字符串操作完全不记得api是啥,是rindex还是rstrchr来着,暴力循环做。最后一题递归的时候循环变量忘记var结果查了一会。
|
20
nixzhu 2013-10-04 21:36:58 +08:00
第五题花比较久的时间,重做了一遍,顺便抄录下来。这好像就是写C的人会写出的风格,没有花哨的东西。最后一题取巧了一点:
第一题: function doubleInteger(i) { // i will be an integer. Double it and return it. return i+=i; } 第二题: function isNumberEven(i) { // i will be an integer. Return true if it's even, and false if it isn't. return i%2 == 0; } 第三题: function getFileExtension(i) { // i will be a string, but it may not have a file extension. // return the file extension (with no period) if it has one, otherwise false var l = i.split('.'); if (l && l.length > 1) { return l[l.length-1]; } else { return false; } } 第四题: function longestString(i) { // i will be an array. // return the longest string in the array var str =''; for (var x=0; x < i.length; x++) { if (typeof i[x] === 'string' && i[x].length > str.length) { str = i[x]; } } return str; } 第五题: function arraySum(i) { // i will be an array, containing integers, strings and/or arrays like itself. // Sum all the integers you find, anywhere in the nest of arrays. var sum = 0; for (var x=0; x < i.length; x++) { if (!(typeof i[x] === 'string')) { if (i[x] instanceof Array) { sum += arraySum(i[x]); } else { sum += i[x]; } } } return sum; } |
22
Hyperion 2013-10-04 21:56:50 +08:00
8 minutes, 29 seconds. 我可耻的用了这种东西, 好羞耻. 没有语法提示, 实在是想不起来正则之外那几个搜索字符串的函数怎么拼了... 45s猥琐解决...
test = i.match(/.*\.(\w+)/); return test?(test[1]?test[1]:false):false; 最后一题, 除了递归还有啥解决办法吗? |
24
mengzhuo 2013-10-04 22:30:19 +08:00
|
25
breeswish 2013-10-04 22:30:47 +08:00
扩展名我直接lastIndexOf
判断是否整数直接上了parseInt(x) === x …… @Hyperion 最后一题还可以这样写,是无递归的~ function arraySum(i) { // i will be an array, containing integers, strings and/or arrays like itself. // Sum all the integers you find, anywhere in the nest of arrays. sum = 0; arr = JSON.parse('[' + JSON.stringify(i).replace(/[\[|\]]/g, '') + ']'); arr.forEach(function(v) { if (parseInt(v) === v) sum += v; }); return sum; } |
27
zhujinliang 2013-10-04 22:48:20 +08:00
@mengzhuo .reverse()[0] 仅相当于 .pop(),无法正确处理类似 'aabbcc' 这样没有扩展名的情况
|
28
tangzx 2013-10-05 12:20:04 +08:00
Eich, Douglas Crockford, Ada, 还有一个被黑的是谁?
|
29
kavinyao 2013-10-05 17:24:00 +08:00
14 minutes, 23 seconds for all 5 levels. Well done!
|
30
kavinyao 2013-10-05 17:31:48 +08:00
@nixzhu 第五题有两个问题:1. !(typeof i[x] === 'string') 不够健壮,object检测不出就不说了,浮点数呢? 2. 无法处理递归引用,例如var a =[1];a[1] = a; 你感受下……
|
31
s 2013-10-05 18:31:25 +08:00 via Android
我蛋疼地用手机撸了半个小时!
晚上回家贴答案。 |
32
otakustay 2013-10-05 19:39:04 +08:00
6分钟,最后一题玩reduce玩脱,好好写for循环估计4分钟能搞定
|
33
s 2013-10-05 20:38:35 +08:00 via Android
灰大,reduce可以的。
|
34
s 2013-10-06 02:09:46 +08:00
第一题
function doubleInteger(i) { return i*2; } 第二题 function isNumberEven(i) { return !(i%2); } 第三题 function getFileExtension(i) { i = /\.(\w+)$/i.exec(i); return i && i[1] || false; } 第四题 function longestString(i) { return i.sort(function(a, b){ if(typeof a!=='string') return 1; if(typeof b!=='string') return -1; return b.length-a.length; })[0]; } 第五题 function arraySum(i) { return i.reduce(function(sum, next){ next = next.map ? arraySum(next) : next.toFixed ? next : 0; return sum+next; }, 0); } |
35
lyric 2014-02-16 15:46:32 +08:00
5 minutes, 46 seconds
|