$('input[type="range"]').rangeslider({polyfill: false});
var _multipliers = [
1,2,3,4,5
].map(function(i){
return (+$('.output'+i).val() / 100);
});
$('#range').on("input", function() {
var _value = +this.value;
[1,2,3,4,5].forEach(function(i){
$('.output'+i).val("$"+ ((1 + _multipliers[i-1]) * _value).toFixed(2));
});
}).trigger("change");
Специально для этого случая вы можете предварительно рассчитать множители, предварительно получив значения из карты.Вкратце, используя .map
, вы получаете все начальные значения и делите их на 100, так что вы получите множитель из них (100 -> 1, 120 -> 1,2 .. и т. Д.).
После этого вы повторяете тот же процесс для получения значения путем доступа к _multipliers[i-1]
, поскольку индексы основаны на 0.
Это решение является универсальным, если все «выходы» сохраняют одинаковые обозначенияи формат.
Fiddle: https://jsfiddle.net/jadckr71/6/
Примечание: унарный оператор +
перед многими "$" должен приводить переменную к числу, чтобы не было рискабудет строкой и каким-то образом будет объединен.