如何在 JavaScript 中将所有值的下拉列表转换为百万/十亿?



如何转换代码生成的下拉列表中的所有输出数字,如这些示例所示? (例如:如果输出数字是 100 0000,我想将其显示为 1M(百万( 例2:如果输出数字是1000 000 000,我想将其显示为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>

您可以使用与此类似的函数:

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';
}
}

最新更新