遇到冷门题目怎么办:从几道小题说起

问:

[“1”, “2”, “3”].map(parseInt) 答案是多少?

这个一开始看懵了,答不上来。标准的,会者不难。

题海是无穷无尽的,不可能每道题都遇到过,只能尝试去分析和理解。

从考查的角度来看,答案本身不重要,答题态度和解题思路更有价值(它代表着你如何处理复杂未知问题的能力)。

[].map() 返回的是数组,传入的值 item, index, arr
parseInt(val, radix) 传入两个参数,数字和进制 `[“1-0-1,2,3”, “2-1-1,2,3”, “3-2-1,2,3”]

因为二进制里面,没有数字3,导致出现超范围的radix赋值和不合法的进制解析,才会返回NaN

答案 [1, NaN, NaN]

靠推测能推演一部分,剩下的就是去验证了。

后来发现这个题目可以去参考 廖雪峰的一篇文章

1
2
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.map(String); // ['1', '2', '3', '4', '5', '6', '7', '8', '9']

高阶函数。

reduce

把数组变成数字。

1
2
3
4
var arr = [1, 3, 5, 7, 9];
arr.reduce(function (x, y) {
return x * 10 + y;
}); // 13579
1
2
3
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10].reduce((sum, item) => {
return item % 3 === 0 ? sum + item : sum + 0;
}, 0);

扫一扫,分享到微信

请我喝杯咖啡吧~