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

202
Visualizações
javascript encuentra objetos anidados en otra matriz y hace matemáticas

Necesito encontrar los dos objetos anidados de la matriz 'productos.accesorios' en la matriz 'accesorios' y verificar su moneda para multiplicar con paridad, verificar su unidad para multiplicar con 'productos.propiedades.longitud', multiplicar cada uno con su 'cantidad' y suma su resultado.

Cualquier sugerencia es muy apreciada. Gracias.

 var accessories = [{ name: 'Accessory-1', currency: 'eur', price: 1, unit: 'm' }, { name: 'Accessory-2', currency: 'usd', price: 2, unit: 'pcs' }]; var products = [{ name: 'Product', properties: [{ no: 'Product-1', length: '2000', accessories: [{ name: 'Accessory-1', qty: 1 }, { name: 'Accessory-2', qty: 1 }] }] }];
 // currencies let eurusd = 1.18 let gbpusd = 1.38

EDITAR: Gracias, @AlexeyZelenin

 function getPrice(accessory) { accessory.unit === 'm' ? unitMultiplier = length / 1000 : unitMultiplier = 1 return ( accessory.currency === 'eur' ? (accessory.price * eurusd) : (accessory.currency === 'gbp' ? (accessory.price * gbpusd) : accessory.price) ).toFixed(2) }
 function getAcc(property) { return property.accessories .map(x => x.qty * getPrice(accessories.find(p => p.name === x.name)) * unitMultiplier) .reduce((c, p) => c + p) }

DOGUILLO:

 each i in products ..... each j in i.properties ..... length = j.length .....
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

 // Accessories: each accessory might be presented several times with different currencies var accessories = [ { name: 'Accessory-1', currency: 'eur', price: 3, unit: 'm', }, { name: 'Accessory-2', currency: 'eur', price: 5, unit: 'm', }, { name: 'Accessory-3', currency: 'usd', price: 2, unit: 'pcs', }, ] // Products - each product has properties with "accessories" inside var products = [ { name: 'Product', properties: [ { no: 'Product-1', length: '2000', accessories: [ { name: 'Accessory-1', qty: 2 }, { name: 'Accessory-2', qty: 2 }, { name: 'Accessory-3', qty: 1 }, ] }, ] } ]; //currencies let eurusd = 1.18; let gbpusd = 1.38; //functions function getPrice(product) { return ( product.currency === 'eur' ? (product.price * eurusd) : (product.currency === 'gbp' ? (product.price * gbpusd) : product.price)).toFixed(2); } // The function gets one product as an incoming parameter // Then gets the list of all accessories for all properties // Finds the accessory from the global array, calculates right price // based on accessory currency and multiplies it by accessory quantity // Then summarises all prices function getAccessories(product) { return product.properties .map(x => ({ accessories: x.accessories.map(b => ({ ...b, length: +x.length })) })) .flatMap(x => x.accessories) // get all accessories .map(x => x.length * x.qty * getPrice(accessories.find(p => p.name === x.name))) // find the price of accessory from global array .reduce((c, p) => c + p) // sum prices ; } console.log(getAccessories(products[0]));

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