Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将排列数组映射到数字_Javascript - Fatal编程技术网

Javascript 将排列数组映射到数字

Javascript 将排列数组映射到数字,javascript,Javascript,当映射包含整数和字符串的数组时,我只想转换数字 假设数组['55','abc']作为参数传递给函数 如何使用spread运算符并获得相同的结果 “运行代码片段”并注意使用spread运算符时,55不会强制转换为数字 console.log(['55','abc'].map(val=>isNaN(val)?val:Number(val))) console.log(…['55',abc']].map(val=>isNaN(val)?val:Number(val))看起来您没有将其扩展到新数组中。

当映射包含整数和字符串的数组时,我只想转换数字

假设数组['55','abc']作为参数传递给函数

如何使用spread运算符并获得相同的结果

“运行代码片段”并注意使用spread运算符时,55不会强制转换为数字

console.log(['55','abc'].map(val=>isNaN(val)?val:Number(val)))

console.log(…['55',abc']].map(val=>isNaN(val)?val:Number(val))
看起来您没有将其扩展到新数组中。下面给出了所需的结果

console.log(['55','abc'].map(val=>isNaN(val)?val:Number(val)))
console.log([…['55','abc']].map(val=>isNaN(val)?val:Number(val))
如何使用spread运算符并获得相同的结果

你不能。Spread(这是语法,不是运算符)不进行映射。它传播价值观。对于映射,请坚持使用
map
(代码第一行中的内容)。(或者,如果您刚开始使用类似于数组的东西,而实际上不是数组,则可以使用
array.from
传入映射回调。但您的示例中的起点是实际数组。)

第二行不起作用的原因是在外部数组上调用
map
,外部数组中有一个数组,因此回调中的
val
就是该数组
isNaN(['55',abc'])
最后变成
isNaN('55,abc')
,这是
true
,因为
'55,abc'
转换成
数字时,类型是
NaN
。因此回调函数返回的内部数组保持不变


您的第一行创建了一个新数组,其中的值按照您希望的映射方式进行映射。

您希望使用spread运算符做什么?目标是什么?
console.log(…array)
相当于
console.log(array[0],array[1],…,array[length-1])
map
返回的数组的每一项作为参数传递给
console.log
。第二个示例的数组包含数组,而不是包含整数和字符串的数组。你是说
console.log(…['55',abc'].map(…)
console.log(…['55',abc']].map(val=>isNaN(val)?val:Number(val))
在这里,你的
val
将是
['55',abc']
。所以,它是正确的。您是否正在尝试执行
[[['55','abc']].flat().map(…)
?您永远不应该将数组文字分散到数组文字中。“这是没有必要的。”Bergi我同意,我的假设是OP使用了数组文字来让问题更容易理解。这并不是实际的代码。这是真的,我没有最简单的方法来操作传入的数组,但它可能是最好的/唯一的路由