Javascript loop문에서 빠져나오기(중단하기)

2024. 12. 22. 22:52Javascript

Ext.Array.each
return은 작동하지 않음
return false로 빠져나와야 함

let hasChildNodes = false;

Ext.Array.each(checkedRows, function (node) {
    if (node.hasChildNodes()) {
        Ext.Msg.alert('Warning', '하위 record가 있으면 삭제할 수 없습니다!');
        hasChildNodes = true; // Mark that a child node was found
        return false; // Stop further iterations
    }
});

// Exit the function if child nodes were found
if (hasChildNodes) {
    return;
}

forEach
return은 작동하지 않음

// Process rows using forEach
checkedRows.forEach(function(node) {
    if (node.hasChildNodes()) {
        Ext.Msg.alert('Warning', '하위 record가 있으면 삭제할 수 없습니다!');
        hasChildNodes = true; // Mark that a child node was found
        return; // Continue to the next iteration, doesn't break the loop
    }
});

// Exit the function if child nodes were found
if (hasChildNodes) {
    return;
}

for...of
return이 작동함

// Process rows using for...of loop
for (const node of checkedRows) {
    if (node.hasChildNodes()) {
        Ext.Msg.alert('Warning', '하위 record가 있으면 삭제할 수 없습니다!');
        return; // Exit the entire function immediately
    }
}