簡體   English   中英

如何在 javascript 中重新啟動 for 循環迭代

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM