const findValueByRange = (arr, value) => arr.find(([key]) => value < key)[1];
const sborRangeValues = [
[2e5, 1067],
[4.5e5, 2134],
[12e5, 4269],
[27e5, 11746],
[42e5, 16524],
[55e5, 21344],
[70e5, 27540],
[Number.POSITIVE_INFINITY, 30000],
];
const checkSbor = JpRashodi => findValueByRange(sborRangeValues, JpRashodi);
const commRangeValues = [
[1e6, 0],
[2e6, 2e4],
[3e6, 3e4],
[4e6, 5e4],
[5e6, 9e4],
[Number.POSITIVE_INFINITY, 10 / 100], // Y so small?
];
const checkCommision = total => findValueByRange(commRangeValues, total);
Тут подозреваю ошибку в последнем значении комиссии в "10 / 100" для значений больше 5 млн.join()
который склеивает все элементы через разделитель, как предложили в другом ответе.'8 + ' .repeat(3) .slice(0, -3)