Retorno de um método no qual o método de matriz forEach () foi chamado. Javascript
Estou usando o método forEach () chamado de uma matriz em JavaScript. Quando escrevoreturn;
em algum lugar dentro do método que é chamado para cada elemento da matriz, eu retorno do método que foi chamado para um elemento específico e isso é tudo. Mas o que eu realmente quero é retornar do método em que o array chamado forEach (). Aqui está o código:
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();
}
Aqui está a solução com a qual eu vim até agora:
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();
}
Gostaria de saber se existem soluções melhores para o problema.
Comparado a essa pergunta:Como curto-circuito Array.forEach como chamar break? Não estou interessado em conhecer o novo método no loop forEach () e quero interromper não forEach (), mas abranger o método de chamada forEach ().