Necesito obtener la matriz de valores de objeto sin usar foreach usando la función de obtención de lodash
"PaymentTypes": [ { "categoryName": "Payment Type 1", "paymentOptions": [{"payCode": "PType1"}] }, { "categoryName": "Payment Type 2", "paymentOptions": [{"payCode": "PType2"},{"payCode": "PType3"}] }, { "categoryName": "Payment Type 3", "paymentOptions": [{"payCode": "PType4"}] } ]Quiero tener todo el código de pago en una sola variable como:
const payCode ={"PType1","PType2","PType3","PType4"};He usado la función de obtención de lodash para obtener valores usando el nombre de la categoría, pero no estoy seguro de cómo obtener el tipo de código de pago para cada categoría en un solo objeto usando la función de obtención de lodash
const category = get(PaymentTypes,"PaymentOptions");Utilice la función Array.map en su lugar.
const payCodes = paymentTypes.map(o => o.payCode);Sugeriría usar una combinación de Array.flatMap() y Array.map() .
Llamaríamos a .flatMap() en la matriz PaymentTypes , luego llamaríamos a .map() en la matriz de opciones de pago para obtener todos los códigos de pago:
const obj = { "PaymentTypes": [{ "categoryName": "Payment Type 1", "paymentOptions": [{ "payCode": "PType1"}] }, { "categoryName": "Payment Type 2", "paymentOptions": [{ "payCode": "PType2"}, {"payCode": "PType3"}] }, { "categoryName": "Payment Type 3", "paymentOptions": [{ "payCode": "PType4"}] } ] } const result = obj.PaymentTypes.flatMap(({ paymentOptions }) => { return paymentOptions.map(({ payCode }) => payCode) }); console.log('Result:', result)