['1', '2', '3'].map(parseInt) what & why ?

本文学习自:https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/4

['1', '2', '3'].map(parseInt),

对于每个迭代map, parseInt()传递两个参数: 字符串和基数。
所以实际执行的的代码是:

['1', '2', '3'].map((item, index) => {
	return parseInt(item, index)
})

即返回的值分别为:

parseInt('1', 0) // 1
parseInt('2', 1) // NaN
parseInt('3', 2) // NaN, 3 不是二进制

所以:

['1', '2', '3'].map(parseInt)
// 1, NaN, NaN

由此,加里·伯恩哈德例子也就很好解释了,这里不再赘述

['10','10','10','10','10'].map(parseInt);
// [10, NaN, 2, 3, 4]

如何在现实世界中做到这一点
如果您实际上想要循环访问字符串数组, 该怎么办? map()然后把它换成数字?使用编号!

['10','10','10','10','10'].map(Number);
// [10, 10, 10, 10, 10]
上一篇:hdu 2964 Prime Bases(简单数学题)


下一篇:Js中NaN不等于NaN