Estoy escribiendo pruebas en cartero y me gustaría extraer la lista de ID dentro de la condición de coincidencia de objetos de variantes donde stock.available ==true y quantity > 3 . Sin embargo, mi problema radica en que el número dentro del objeto de variants es un valor aleatorio, que es 194922428018, 194922428025 y 194922428032. El resultado final debería ser solo 194922428025 y 194922428032 , que son los artículos con stock. Gracias de antemano.
[{ "appIdentifier": "53443434w-813f-4b59-b58a-deaf76847845", "categoryIds": null, "id": "205148", "variants": { "194922428018": { "id": "194922428018", "filterAttributes": null, "meta": { "ean": "609332822610" }, "stock": { "available": false, "lowOnStock": true, "leadTime": null, "quantity": 0 }, "categoryIds": null }, "194922428025": { "id": "194922428025", "filterAttributes": null, "stock": { "available": true, "lowOnStock": true, "leadTime": null, "quantity": 9 }, "categoryIds": null }, "194922428032": { "id": "194922428032", "filterAttributes": null, "stock": { "available": true, "lowOnStock": false, "leadTime": null, "quantity": 33 }, "categoryIds": null } }]Espero que esto funcione para ti
const testArray = [{ "appIdentifier": "53443434w-813f-4b59-b58a-deaf76847845", "categoryIds": null, "id": "205148", "variants": { "194922428018": { "id": "194922428018", "filterAttributes": null, "stock": { "available": false, "lowOnStock": true, "leadTime": null, "quantity": 0 }, "categoryIds": null }, "194922428025": { "id": "194922428025", "filterAttributes": null, "stock": { "available": true, "lowOnStock": true, "leadTime": null, "quantity": 9 }, "categoryIds": null }, "194922428032": { "id": "194922428032", "filterAttributes": null, "stock": { "available": true, "lowOnStock": false, "leadTime": null, "quantity": 33 }, "categoryIds": null } }} ] const ids = Object.entries(testArray[0]['variants']).reduce((acc, [key, value])=>{ if(value.stock.available && value.stock.quantity > 3) acc.push(key) return acc }, []) console.log(ids) // ["194922428025", "194922428032"]