Вот пример того, как вы могли бы реализовать это:

ользую метод forEach (), вызываемый из массива в JavaScript. Когда я пишуreturn; Где-то внутри метода, который вызывается для каждого элемента в массиве, я возвращаюсь из метода, который был вызван для определенного элемента, и это все. Но то, что я на самом деле хочу, это возврат из метода, в котором массив вызывал forEach (). Вот код:

    function addToCart(pizza, size)
    {
        Cart.forEach(function(cartItem)
        {
            if(pizzaAndSizeAreTheSame(cartItem, pizza, size))
            {
                cartItem.quantity++;
                updateCart();
                //Want go out from addToCart if this return is reached
                return;
            }
        });

        //Don`t want the code run after return;
        Cart.push
        ({
            pizza: pizza,
            size: size,
            quantity: 1
        });
        updateCart();
    }

Вот решение, с которым я дошел до сих пор:

    function addToCart(pizza, size)
{
    var leaveTheMethod = false;
    Cart.forEach(function(cartItem)
    {
        if(pizzaAndSizeAreTheSame(cartItem, pizza, size))
        {
            cartItem.quantity++;
            updateCart();
            leveTheMethod = true;
        }
    });
    if(leaveTheMethod)
        {return;}

    //Don`t want the code run after return;
    Cart.push
    ({
        pizza: pizza,
        size: size,
        quantity: 1
    });
    updateCart();
}

Я хотел бы знать, есть ли лучшие решения проблемы.

По сравнению с этим вопросом:Как замкнуть Array.forEach, например, вызвать прерывание? Меня не интересует знание нового метода в цикле forEach (), и я хочу отказаться не от forEach (), а от охвата метода вызывающего forEach ().

Ответы на вопрос(4)

Ваш ответ на вопрос