我试图根据javascript中另一个特定的数字值更新一个特定的数字值。
我正在寻找使用javascript的最佳方法,以便当'BPM‘值发生变化时,'time added’值也会发生变化,以匹配以下值:
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增加或减少。
谢谢
发布于 2022-07-08 20:05:17
您可以使用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">
https://stackoverflow.com/questions/72916310
复制相似问题