Tengo problemas para que mi función devuelva el producto de dos variables con valores numéricos.
Las instrucciones son: desea escribir una función que tome el nombre de una acción como una cadena y le devuelva la cantidad total de dinero que ha invertido en esa acción. por ejemplo, si su función recibe 'AMZN', debería devolver 4000.
Esta es mi función, sigo devolviendo NaN cuando debería devolver 4000.
let investments = [ {stock: "AMZN", price: 400, numOfShares: 10}, {stock: "AAPL", price: 300, numOfShares: 5}, {stock: "BIDU", price: 250, numOfShares: 4} ]; calculateInvestedAmt = (stock) => { const totalAmt = investments.price * investments.numOfShares; return totalAmt; }; calculateInvestedAmt("AMZN");investments.price e investments.numOfShares no están definidos. Es por eso que produce NaN, porque estás multiplicando dos valores indefinidos. Primero debe iterar sobre investments para encontrar las acciones que desea.
Tienes que usar el método de find
const getStockPrice = (name) => { const stock = investments.find(s => s.stock === name); if (!stock) return undefined; // can't find stock returb stock.price * stock.numOfShares; } let investments = [ {stock: "AMZN", price: 400, numOfShares: 10}, {stock: "AMZN", price: 400, numOfShares: 10}, {stock: "AAPL", price: 300, numOfShares: 5}, {stock: "BIDU", price: 250, numOfShares: 4} ]; calculateInvestedAmt = (stockName) => { var totalAmt; var investedItem = investments.filter(invst => invst.stock === stockName); investedItem.map(item => { totalAmt = item.price * item.numOfShares; }); return totalAmt; }; console.log(calculateInvestedAmt("AMZN"));