¿Cómo puedo usar el filtro para completar la variable onlyAmountLess5? Quiero filtrar solo productos donde el monto de las ventas sea < 5:
const products = [ { id: 1, name: "bread", value: 2.0, category: "bakery", "sales":[{"day": "07/04/2021", "amount": 12}, {"day": "10/04/2021", "amount": 18}] }, { id: 2, name: "apple", value: 6.5, category: "fruit", "sales":[{"day": "07/04/2021", "amount": 4}, {"day": "10/04/2021", "amount": 18}] }, { id: 3, name: "pizza", value: 2.0, category: "food", "sales":[{"day": "07/04/2021", "amount": 5}, {"day": "10/04/2021", "amount": 18}]} , { id: 4, name: "cheese", value: 7.0, category: "bakery", "sales":[{"day": "07/04/2021", "amount": 12}, {"day": "10/04/2021", "amount": 5}] }, { id: 5, name: "milk", value: 2.2, category: "food", "sales":[{"day": "07/04/2021", "amount": 12}, {"dia": "10/04/2021", "amount": 3}]} ]; const onlyBakery = products.filter( p => p.category ==="bakery") console.log(onlyBakery); // List only product where sales amount < 5 const onlyAmountLess5 = products.filter(o => products.sales.amount < 4)La venta de campo tiene dos importes. Si quieres comprobarlos todos puedes hacerlo así:
const maxAmount = 5; const onlyAmountLess5 = products.filter(product => product.sales.some(item => item.amount < maxAmount));Si desea seleccionar la entrada en la que todos los importes son inferiores a 5, puede utilizar cada
Tenga en cuenta que daría una matriz vacía, ya que para ninguno de los ejemplos, todos los objetos tienen una cantidad menor que 5.
Tenga en cuenta que < 4 no es lo mismo que <5 . También podría escribir <=4 en su lugar.
const products = [ { id: 1, name: "bread", value: 2.0, category: "bakery", "sales":[{"day": "07/04/2021", "amount": 12}, {"day": "10/04/2021", "amount": 18}] }, { id: 2, name: "apple", value: 6.5, category: "fruit", "sales":[{"day": "07/04/2021", "amount": 4}, {"day": "10/04/2021", "amount": 18}] }, { id: 3, name: "pizza", value: 2.0, category: "food", "sales":[{"day": "07/04/2021", "amount": 5}, {"day": "10/04/2021", "amount": 18}]} , { id: 4, name: "cheese", value: 7.0, category: "bakery", "sales":[{"day": "07/04/2021", "amount": 12}, {"day": "10/04/2021", "amount": 5}] }, { id: 5, name: "milk", value: 2.2, category: "food", "sales":[{"day": "07/04/2021", "amount": 12}, {"dia": "10/04/2021", "amount": 3}]} ]; const onlyAmountLess5 = products.filter(o =>o.sales.every(i => i.amount < 5)); console.log(onlyAmountLess5); Un ejemplo usando < 13 para devolver 2 entradas:
const products = [ { id: 1, name: "bread", value: 2.0, category: "bakery", "sales":[{"day": "07/04/2021", "amount": 12}, {"day": "10/04/2021", "amount": 18}] }, { id: 2, name: "apple", value: 6.5, category: "fruit", "sales":[{"day": "07/04/2021", "amount": 4}, {"day": "10/04/2021", "amount": 18}] }, { id: 3, name: "pizza", value: 2.0, category: "food", "sales":[{"day": "07/04/2021", "amount": 5}, {"day": "10/04/2021", "amount": 18}]} , { id: 4, name: "cheese", value: 7.0, category: "bakery", "sales":[{"day": "07/04/2021", "amount": 12}, {"day": "10/04/2021", "amount": 5}] }, { id: 5, name: "milk", value: 2.2, category: "food", "sales":[{"day": "07/04/2021", "amount": 12}, {"dia": "10/04/2021", "amount": 3}]} ]; const onlyAmountLess5 = products.filter(o =>o.sales.every(i => i.amount < 13)); console.log(onlyAmountLess5);