Map
入门。
jshell> Arrays.asList("1", "10", "100").stream().map(Integer::parseInt).collect(Collectors.toList())
$1 ==> [1, 10, 100]
放弃?
> ['1', '10', '100'].map(parseInt)
[ 1, NaN, 4 ]
进阶!
JavaScript 的map
会将三个变量扔给函数:当前值,当前 index,和整个数组,也就是说
arr.map(func);
等同于
arr.map((value, index, array) => func(value, index, array));
而parseInt
有两个参数:字符串string
和基数radix
。
1
=>parseInt('1', 0)
,0
作为基数时实际是使用默认的十进制,所以结果是1
10
=>parseInt('10', 1)
,1
无法作为基数,所以结果是NaN
100
=>parseInt('100', 2)
, 基数为 2,所以是二进制,而二进制的100
就是十进制的4
。