Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

293
Visualizações
función de matriz ¿algunas no funcionan como se esperaba? ¿Qué esta mal en mi codigo?
 const priceType = ['monthly', 'annual']; var discounts =[ {product: "A", monthlyDiscount : 15.0, monthlyMaxDiscount: 30.0, annualDiscount : 25.0, annualMaxDiscount : 20.0}, {product: "B", monthlyDiscount : 5.0, monthlyMaxDiscount: 20.0, annualDiscount : 40.0, annualMaxDiscount : 30.0} ] var exceedsDiscount;

Si alguno de mis objetos de descuento excede el descuento máximo, necesito establecer el valor booleano como verdadero y dejar de verificar otros elementos de la matriz.

Utilicé bucles for y esto funciona como se esperaba:

 exceedsDiscount = false; angular.forEach(priceType, function(type){ angular.forEach(discounts, function(discount){ if(discount[`${type}Discount`] > discount[`${type}MaxDiscount`]){ exceedsDiscount = true; return; } });

Si trato de usar todas y algunas funciones de flecha, el resultado no es el mismo. Al azar da verdadero o falso. ¿Alguna idea de cómo puedo usar sin usar dos bucles for?

 exceedsDiscount = false; exceedsDiscount = priceType.every(type => discounts.some(discount =>{return discount[`${type}Discount`] > discount[`${type}MaxDiscount`];}));
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Como señaló trincot en el comentario, en lugar de .every(.... .some(...)) , si se usa .some(... .some(...)) - se obtiene el resultado requerido.

Por 'some .. some' nos referimos a un escenario en el que hay "algún" tipo para el cual hay "algún" descuento que es mayor que maxDiscount.

Fragmento a continuación:

 const priceType = ['monthly', 'annual']; var discounts = [{ product: "A", monthlyDiscount: 15.0, monthlyMaxDiscount: 30.0, annualDiscount: 25.0, annualMaxDiscount: 20.0 }, { product: "B", monthlyDiscount: 5.0, monthlyMaxDiscount: 20.0, annualDiscount: 40.0, annualMaxDiscount: 30.0 } ]; const everySome = priceType.every(type => discounts.some(discount =>{return discount[`${type}Discount`] > discount[`${type}MaxDiscount`];}));; const someSome = priceType.some(type => discounts.some(discount =>{return discount[`${type}Discount`] > discount[`${type}MaxDiscount`];})); console.log( '\n.every(.. .some( returns: ', JSON.stringify(everySome), '\n.some(.. .some( returns: ', JSON.stringify(someSome) );

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda