当条件第一次为真时,如何停止循环?
<p id="numb"></p>
这是我的 JavaScript 代码,我哪里出错了?我希望当条件为真时循环停止并且不检查其他变体?
function round (number) {
var str = number.replace(/[, .]/g, "");
var numb = parseInt(str);
var point = {
"T": Math.pow(10, 12),
"B": Math.pow(10, 9),
"M": Math.pow(10, 6),
"K": Math.pow(10, 3)
};
Object.keys(point).forEach(function (key) {
var pNumb = point[key];
// console.log(pNumb);
// console.log(key);
if (pNumb < numb) {
var letter = key;
console.log(letter);
var z = numb / pNumb;
if (numb % pNumb !== 0) {
document.getElementById("numb").innerHTML = z.toFixed(1) + letter;
} else {
document.getElementById("numb").innerHTML = z + letter;
}
return false;
}
});
}
round("665,421,000")
最佳答案
返回false
不会提前停止forEach
循环。尽早停止此类循环的唯一方法是抛出异常(您需要在循环外捕获该异常)。
我通常推荐using a for
...of
loop如果您使用的是足够新的 Javascript 版本,而不是 forEach
。但在这种情况下,由于您对对象(而不是对象本身)调用 Object.keys()
的结果调用 forEach
,因此您可以使用for
...in
循环,它一直存在于 Javascript 中。
关于javascript - 在Javascript中将长数字转换为1M、1K等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48650795/