บอกเราว่าเกิดอะไรขึ้น:
อธิบายปัญหาของคุณโดยละเอียดที่นี่
ในครั้งแรกที่ผมทำข้อนี้ ผมใช้วิธีวน loop โดยใช้ forEach ซ้อนกับ while loop แล้วถ้าเข้า case ก็จะ return false เพื่อหยุดกาารทำงานในลูปของ forEach แล้วกลับไปทำ while loop ใหม่ แต่ปรากฎว่ามันไม่หยุดการทำงานใน loop forEach ตอนเข้ากรณีที่ return false แต่ลองเปลี่ยนเป็น every มันหยุดการทำงานให้ อยากทราบถึงเหตุผลครับว่าทำไม loop forEach ถึงไม่หยุดการทำงานให้ตอน return false อะครับ ขอขอบคุณล่วงหน้าครับ
อันนี้คือรูปภาพประกอบครับ
**รหัสของคุณ**
function convertToRoman(num) {
var roman = {1:"I", 4:"IV",5:"V" ,9:"IX",10:"X",40:"XL", 50:"L",90:"XC", 100:"C",400:"CD", 500:"D",900:"DM",1000:"M",}
var arr = Object.keys(roman);
arr = arr.reverse();
var s = "";
while(num != 0){
console.log("num : ",num)
arr.forEach(function(data){
console.log(data,num)
if(num >= data) {
s += roman[data];
num-=data;
return false;
}else return true
})
}
console.log(s)
return s;
}
convertToRoman(888)
**ข้อมูลเบราว์เซอร์ของคุณ:**
ตัวแทนผู้ใช้คือ: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36
Challenge: Roman Numeral Converter
ไปสู่ the challenge: