Javascript,应用映射函数,但有两个可能的函数

Javascript,应用映射函数,但有两个可能的函数,javascript,arrays,map-function,Javascript,Arrays,Map Function,我目前正在从事一个项目,该项目要求我(从机器上)获取一个长度列表,并将其转换为一个计时列表。 机器可以在两种不同的速度下运行,其中我在较快速度的值之前用“F”表示,在较慢速度的值之前用“F”表示。 这是我的值数组的一个示例: [1.234,2.13,F1.23,5.5,F2.3] 要将这些转换为计时,我需要将前面没有和F的每个元素除以10,将前面有F的每个元素除以100,然后删除F。 预期的阵列结果应类似于: [0.1234,0.213,0.0123,0.55,0.023] 我知道如何使用map

我目前正在从事一个项目,该项目要求我(从机器上)获取一个长度列表,并将其转换为一个计时列表。 机器可以在两种不同的速度下运行,其中我在较快速度的值之前用“F”表示,在较慢速度的值之前用“F”表示。 这是我的值数组的一个示例:
[1.234,2.13,F1.23,5.5,F2.3]
要将这些转换为计时,我需要将前面没有和F的每个元素除以10,将前面有F的每个元素除以100,然后删除F。 预期的阵列结果应类似于:
[0.1234,0.213,0.0123,0.55,0.023]

我知道如何使用map函数,如果我只想应用一个函数,比如
.map[x=>x/10]
,它就可以工作。我也知道我可以使用for循环,但我开始这个项目是为了学习其他不使用这些循环的方法。。 我很不确定如何根据起始字符应用另一个函数,但不是每个元素。也许有一个我缺少的命令可以在这里工作?

当您可以使用单独的
map
回调来执行此操作时,通常的解决方案是在单个
map
回调中分支或使用条件

.map(x => x.charAt(0) === "F" ? +x.substring(1) : x / 10)
或具有其他地方定义的单独功能:

.map(x => x.charAt(0) === "F" ? convertF(x) : convertNonF(x))

如果您想用两个
map
回调来实现,有多种方法可以实现,但它们都比上面的方法复杂,而且几乎所有方法都涉及分支/条件(我能想到的唯一一个不使用分支/条件的方法实际上过于复杂,包括一个中间数组
[index,value]
对、两个
过滤器
调用和各种其他开销).

如果有的话,告诉我们你尝试过什么。很有趣!只是一个关于条件的提醒,所以?之前的条件就是被测试的条件,在这种情况下,是字符,如果通过,子字符串将去掉第一个字符,如果不通过,值将除以10?@Lawrence123-对。基本上是
condition?exprIfTruthy:exprIfFalsy