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

217
Visualizações
Recorra una matriz si encuentra una clave, omita el índice de esa clave, pero eventualmente querrá volver atrás y agregar ese índice omitiendo las otras claves

Así que esto es un poco difícil de explicar, pero básicamente tratando de hacer una forma más eficiente de hacer el siguiente código...

 products.forEach(function(item, index){ if(item.sale == false ) { nonSaleItems += createEl(item); } else { saleItems += createEl(item); } }); items.innerHTML += nonSaleItems; items.innerHTML += saleItems;

productos es una matriz de objetos donde una de las claves es "venta" y es "falso" o "verdadero" para "venta". La idea detrás de esto es publicar todos los artículos que no están en venta primero, luego los artículos en venta van en segundo lugar; por lo tanto, el código HTML interno de nonSaleItems primero, LUEGO saleItems se agrega en segundo lugar.

Este código funciona perfectamente, pero siento que tiene que haber una forma más eficiente/menos detallada de hacerlo en lugar de dos variables de nonSaleItems y saleItems y luego dos innterHTML.

¿Solo por curiosidad si alguien tenía mejores ideas sobre cómo simplificar esto o tenerlo mejor?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Ya está haciendo un ciclo a través de todos los productos, lo cual es a) necesario yb) lo más eficiente posible.

Lo mejor que puede hacer es hacer que su código sea menos detallado. En este caso, estoy usando un ternario para decidir si usar saleItems o nonSaleItems como lvalue para += createEl(...) :

 products.forEach(function(item, index){ ( item.sale ? saleItems : nonSaleItems ) += createEl(item); }); items.innerHTML += nonSaleItems; items.innerHTML += saleItems;

EDITAR:

El código anterior no funcionará porque el ternario se evalúa como un valor r, no como un valor l. Consulte Operador ternario de Javascript lvalue .

Sin embargo, puede usar el ternario para evaluar un objeto , que puede ser desreferenciado (consulte https://stackoverflow.com/a/18668615/378779 ):

 let saleItems = { html: '' }, nonSaleItems = { html: '' } products.forEach(function(item, index){ ( item.sale ? saleItems : nonSaleItems ).html += createEl(item); }); items.innerHTML += nonSaleItems.html; items.innerHTML += saleItems.html;

O, con un solo objeto, pero usando un ternario para determinar la clave:

 let html = { sale: '', nonSale: '' }; products.forEach(function(item, index){ html[(item.sale ? 'sale' : 'nonSale')] += createEl(item); }); items.innerHTML += html.nonSale; items.innerHTML += html.sale;
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