Цикл for...in - после метода return не осуществляется выход из функции

Цикл for...in - после метода return не осуществляется выход из функции и цикл начинается ещё один раз!

function remove_Phone() {

    for (let key in phoneBook) {

        let arr = String(phoneBook[key]).split(", ");

        let removeIndex = arr.indexOf(contactName);

        if (removeIndex >= 0)
        {
            arr.splice(removeIndex, 1);

            phoneBook[key] = arr.join();

            return true;
        }

    }

    return false;

}

То есть, возвращает true, но не выходит из функции, возвращается к строке for...in, а затем к строке return false, после чего выходит из функции, возвращая, соответственно, false!


Ответы (1 шт):

Автор решения: Aziz Umarov

Попробуйте так

function remove_Phone() {

    let result = false;
    for (let key in phoneBook) {

        let arr = String(phoneBook[key]).split(", ");

        let removeIndex = arr.indexOf(contactName);

        if (removeIndex >= 0)
        {
            arr.splice(removeIndex, 1);

            phoneBook[key] = arr.join();

            result = true;
            break;
        }

    }

    return result;

}
→ Ссылка