javascript - Javascript,应用地图功能,但有两个可能的功能
问题描述
我目前正在从事一个项目,该项目需要我(从机器上)获取长度列表并将它们转换为时间列表。该机器可以以两种不同的速度运行,其中我在较快速度的值之前用“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[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]
对、两次filter
调用和各种其他开销)。
推荐阅读
- android - 工作代码突然停止工作 - 为什么?
- java - 从 pdf 中的 html 文本块访问内部 PDF 链接
- testing - Puppeteer Chromium,禁用“匿名化 WebRTC 公开的本地 IP”
- assembly - Cortex-m4 asm 与 cortex-m0 asm
- python - 在 docker run 和 build 之间获取不同的 python 版本
- raspberry-pi - 无法访问 Raspberry Pi 上的 Jupyter 服务器
- php - 如何在 PHP 中使用 echo 在 img src 字符串的中间插入变量
- typescript - 作为变量给出时获取选项的打字稿错误
- c++ - 如何在 C++ 中使用套接字 (UDP) 在 LAN 上查找服务器
- vue.js - 计算属性未触发 v-if 块