Tell us what’s happening:
For some reason, my for loops aren’t executing the number of times they should. If you look at the last loop in my code, purely for testing:
for (i = 0; i < 1000; i++) {
console.log("loop called")
}
It only logs loop called
22 times! What’s wrong?
Your code so far
function getFinalOpenedDoors(numDoors) {
console.log("numDoors:" + numDoors)
var doors = Array(numDoors)
doors.fill(false)
console.log("Doors: " + doors)
var resultArray = []
var loop = 0
for (var i = 1; i < numDoors + 1; i++) {
loop += 1
console.log("loop called")
for (var j = i; j < numDoors + 1; j = j + i) {
console.log("+1")
if (doors[j]) {
doors[j] = false
} else {
doors[j] = true
}
continue
}
}
console.log("loop called %s times", loop)
for (var k = 0; k < numDoors; k++) {
console.log("k:" + k)
if (doors[k]) {
resultArray.push(k+1)
}
}
console.log("resultArray: " + resultArray)
return resultArray
}
var newLoop
for (var i = 0; i++; i<1000) {
newLoop ++
}
console.log("newLoop called %s times", newLoop)
for (i = 0; i < 1000; i++) {
console.log("loop called")
}
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36
.
Link to the challenge:
https://learn.freecodecamp.org/coding-interview-prep/rosetta-code/100-doors/