簡體   English   中英

為特定數字輸入返回特定數字值的最佳方法是什么?

[英]What is the best way to return a specific number value for a specific number input?

我正在嘗試根據 javascript 中的另一個特定數值更新特定數值

我正在尋找使用 javascript 的最佳方式,以便當“BPM”值更改時,“時間添加”值也會更改以匹配以下值:

BPM : 添加時間

-52:4.75

-48 : 4.5

-44:3.8

-40:3.2

-36:2.5

-32:2

-28 : 2

-24:1.5

-20:1.25

-16:0.85

-12:0.75

-8:0.5

-4:0.25

0 : 0

4 : 0

8:-0.2

12:-0.4

16:-0.6

20:-0.6

24:-0.8

28:-0.9

32:-1.1

36:-1.1

40:-1.2

44:-1.35

48:-1.42

52:-1.55

我相信這可以通過一系列 if..else if 語句來完成,但這似乎非常笨拙。

這是我用來通過單擊按鈕更新 BPM 的代碼:

     function increase() {
        // Increase the playing speed by approx 1 BPM
        rate += 0.03808;
        bpm += 4;
    }

    function decrease() {
       // Decreasing the playing speed by 1 BPM
        if (rate > .25)
          rate -= 0.03808;
          bpm -= 4;
    }

我想添加另一個名為“時間變化”的變量,每次增加或減少 bpm 時,它將 bpm 的值映射到上面列表中的正確時間值。

謝謝

您可以使用 javascript 對象來執行此操作。 只需在對象中為每個 BPM 賦予一個值。 然后將事件處理程序附加到 BPM 輸入並檢查該值是否存在並使用它。 我只是為了測試目的而記錄它。

 let times = { "-52": "4.75", "-48": "4.5", "-44": "3.8", "-40": "3.2", "-36": "2.5", "-32": "2", "-28": "2", "-24": "1.5", "-20": "1.25", "-16": "0.85", "-12": "0.75", "-8": "0.5", "-4": "0.25", "0": "0", "4": "0", "8": "-0.2", "12": "-0.4", "16": "-0.6", "20": "-0.6", "24": "-0.8", "28": "-0.9", "32": "-1.1", "36": "-1.1", "40": "-1.2", "44": "-1.35", "48": "-1.42", "52": "-1.55" }; let bpmInput = document.querySelector(".bpm"); bpmInput.addEventListener("input", function() { _time = times[bpmInput.value]; if (_time) { console.log(_time) } });
 <input type="text" class="bpm">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM