как преобразовать все значения в раскрывающемся списке в миллион / миллиард в javascript? - PullRequest
0 голосов
/ 27 мая 2020

Как преобразовать все выходные числа в раскрывающемся списке, сгенерированные кодом, как в этих примерах? (Пример: если выходной номер равен 100 0000, я хочу показать это как 1M (миллион) Пример 2: если выходной номер равен 1000000000, я хочу показать это как 1B (миллиард))

window.f = function(event) {
    var ddlArray = new Array();
    var onoffelem=event.target;
    var ddl = document.getElementById('ddl');
    var select = document.getElementById('combo2');
    var combo3 = document.getElementById('combo3');
    var selectedVal=onoffelem.options[onoffelem.selectedIndex].text ;

    if (selectedVal == "LKR") {
        document.getElementById("combo2").options.length = 0;
        for (i = 0; i < combo3.options.length; i++) {
            ddlArray[i] = combo3.options[i].value;
        }
        for (i = 0; i < ddlArray.length; i++) {
            var option = document.createElement("OPTION"),
            txt = document.createTextNode("Rs. " + ddlArray[i] * 185000000);
            option.appendChild(txt);
            option.setAttribute("value", ddlArray[i] * 185000000);
            select.insertBefore(option, select.lastChild);
        }
    } 

    if (selectedVal == "USD") {
        document.getElementById("combo2").options.length = 0;
        for (i = 0; i < combo3.options.length; i++) {
            ddlArray[i] = combo3.options[i].value;
        }
        for (i = 0; i < ddlArray.length; i++) {
            var option = document.createElement("OPTION"),
            txt = document.createTextNode(ddlArray[i] * 20000);
            option.appendChild(txt);
            option.setAttribute("value",ddlArray[i] * 20000);
            select.insertBefore(option,select.lastChild);
        }
    }
}

 
<select id="ddl" onchange="f(event)" >
    <option value="185">USD</option>
    <option value="11">LKR</option>
    <option value="48">AED</option>
</select>
<select name="" id="combo2" >
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

<select name="" id="combo3" hidden="">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

1 Ответ

0 голосов
/ 29 мая 2020

Вы можете использовать функцию, подобную этой:

formatNumber(num) {
    if (num >= 1000000000) {
      return (num / 1000000000).toFixed().replace(/\.0$/, '') + 'B';
    }
    if (num >= 1000000) {
      return (num / 1000000).toFixed().replace(/\.0$/, '') + 'M';
    }
    if (num >= 1000) {
      return (num / 1000).toFixed().replace(/\.0$/, '') + 'K';
    }
}
...