if 문에서 잘못된 결과를 얻을 때 루프를 멈추려 고하지만 작동하지 않고 누락 된 부분을 볼 수 없습니다. 나는 해결책이 될 것이지만 여전히 아무것도 원하지 않는 라벨을 추가했다.for-loop break 문을 무시합니까?
let a1 = [1321, 144, 19, 161, 19, 144, 19, 11];
let a2 = [11*11, 121*121, 144*144, 19*19, 161*161, 19*19, 144*144, 19*19];
function comp(a,b){
a.sort()
b.sort()
var result = true;
if (a === null || b === null) { return !result }
if(a.length < 1 || b.length < 1) { return !result }
loop_label: for (var i =0; i < a.length; i++) {
console.log(a[i]*a[i], b[1],(a[i]*a[i]) == b[i])
if(!(a[i]*a[i]) == b[i]) {
return !result;
break loop_label;
}
}
return result;
};
대신 무슨 일이 통해 반복 계속 것입니다 그리고 마지막에 true를 돌려 그러나 나는 평가 중 하나가 거짓 인 경우 false를 반환합니다. 이처럼해야하는 경우
은'return' 문을 원하는 것을 할 곳에 즉시 기능을 종료합니다. – Pointy
정확하게 "작동하지 않는"방법은 무엇입니까? 'break' 문은'return' 후에 결코 도달하지 않을 것이기 때문에 불필요한 반면, loop *는'return' 후에 "stop"을합니다. – David
아마도 console.log 문은 코드를 종료하지 않는다는 잘못된 가정을하기 때문에 console.log 문은 항상'b [1]'을 출력하고'b [i]'를 출력하지 않기 때문일 수 있습니까? – Icepickle