정해진 범위 만큼 tr안의 모든 td를 돌면서 작업을 해줘야 했다.
그리고 특정 조건에 부합하면 for문이 종료 됐어야 했는데, 원하는대로 되지 않았다.
for (let i = begin.idx; i <= end.idx; i++) {
tdList.forEach(el => (
if (특정 조건) {
return false;
}
// do something
))
}
헤헷 머쓱머쓱...^^ forEach문이 종료된다고 해서 for문이 종료되진 않는다구웃~!
그래서 forEach문을 for문으로 수정하여 이중 for문으로 만들었다.
for (let i = begin.idx; i <= end.idx; i++) {
for (let j = 0; j < tdList.length; j++) {
if (특정 조건) {
break;
}
// do somthing
}
}
하지만 또 원하는대로 구현이 되지 않았다.
안쪽의 for문이 종료된다고 해서 바깥쪽이 종료되는 것이 아니라구웃~^^
그렇다면 해결 방법은?
바로 label을 붙여주는 것이다.
outerLoop: for (let i = begin.idx; i <= end.idx; i++) {
for (let j = 0; j < tdList.length; j++) {
if (특정 조건) {
break outerLoop;
}
// do somthing
}
}
label 명은 자바스크립트에서 사용할 수 있는 식별자면 모두 가능하다.
(단, strict mode에서는 'let'을 사용할 수 없다.)
label는 continue 하고 싶은 상황에서도 쓸 수 있다.
얏호! 성공이다✨