tengo esta funcion
const getMonthlyPriceFromData = (planName) => { planTypeData.map((item) => { if (item.name === planName) { console.log(item.monthlyFee, 'fee') return item.monthlyFee; } return null; }); };cuando hago console.log(item.monthyFee) devuelve la respuesta correcta pero cuando llamo
console.log(getMonthlyPriceFromData('Free')) ¿devuelve indefinido?
No hay una declaración de return real dentro de su función:
const getMonthlyPriceFromData = (planName) => { return planTypeData.map((item) => { if (item.name === planName) { console.log(item.monthlyFee, 'fee') return item.monthlyFee; } return null; }); }; O utilice la forma de flecha corta . De esta manera, puede omitir la palabra clave de return , solo si también omite las llaves { :
const getMonthlyPriceFromData = (planName) => planTypeData.map((item) => { if (item.name === planName) { console.log(item.monthlyFee, 'fee') return item.monthlyFee; } return null; })EDITAR:
OP parece querer que solo se devuelva un elemento de la matriz y para eso find() sería un mejor enfoque:
const getMonthlyPriceFromData = (planName) => planTypeData.find((item) => { if (item.name === planName) { console.log(item.monthlyFee, 'fee') return true; } return false; })Debe agregar un "retorno" antes de "planTypeData.map", así:
const getMonthlyPriceFromData = (planName) => { return planTypeData.map((item) => { if (item.name === planName) { return item.monthlyFee; } return null; }); }; console.log(getMonthlyPriceFromData('Free'))¡Entonces debería funcionar!