我在讓我的函式回傳帶有數值的兩個變數的乘積時遇到問題。
說明是:您想撰寫一個函式,該函式將股票名稱作為字串,并回傳您投資于該股票的總金額。例如,如果您的函式被賦予“AMZN”,則它應該回傳 4000。
這是我的功能,當我應該回傳 4000 時,我一直回傳 NaN。
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");
uj5u.com熱心網友回復:
investments.price并且investments.numOfShares是未定義的。這就是它產生 NaN 的原因,因為您將兩個未定義的值相乘。您應該首先迭代investments以找到您想要的股票。
uj5u.com熱心網友回復:
你必須使用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;
}
uj5u.com熱心網友回復:
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"));
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/342951.html
標籤:javascript 功能
