[英]how to restart a for in loop iteration in javascript
每次 if 語句發生時我都需要重新啟動循環,以便正確的羅馬數字轉換工作
通過將迭代器的鍵(羅馬數字)推到計數器,並從輸入 num 中減去迭代器的值,然后我希望循環從頭開始
let conversionChart = {
m:1000,
cm:900,
d:500,
cd:400,
c:100,
xc:90,
l:50,
xl:40,
x:10,
ix:9,
v:5,
iv:4,
i:1
}
let newArr = [];
let counter = [];
for(let i in conversionChart){
if(num >= conversionChart[i]){
counter.push(i)
num = num - conversionChart[i]
continue;
}
}
return counter
}
console.log(convertToRoman(36));```
您需要將該循環包裝在另一個循環中,只要有要轉換的內容,該循環就會繼續:
let conversionChart = {
m: 1000,
cm: 900,
d: 500,
cd: 400,
c: 100,
xc: 90,
l: 50,
xl: 40,
x: 10,
ix: 9,
v: 5,
iv: 4,
i: 1,
};
function convertToRoman(num) {
const counter = [];
// while there is still something to convert...
while (num > 0) {
for (let romanNumeral in conversionChart) {
if (num >= conversionChart[romanNumeral]) {
counter.push(romanNumeral);
num = num - conversionChart[romanNumeral];
break; // ... out of the inner "romanNumeral ..." loop
}
}
}
return counter.join("");
}
console.log(convertToRoman(36));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.