亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Javascript,應用地圖功能,但有兩個可能的功能

Javascript,應用地圖功能,但有兩個可能的功能

慕少森 2023-10-20 16:32:14
我目前正在開發一個項目,該項目需要我(從機器)獲取長度列表并將其轉換為時間列表。該機器可以以兩種不同的速度運行,其中我在較快的速度值之前用“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 循環,但我開始這個項目是為了學習不使用這些循環的其他方法。我非常不確定如何根據起始字符應用另一個函數,但是不是每個元素。也許我缺少一個可以在這里工作的命令?
查看完整描述

1 回答

?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

雖然您可以使用單獨的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調用和各種其他開銷)。


查看完整回答
反對 回復 2023-10-20
  • 1 回答
  • 0 關注
  • 116 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號