gpt4 book ai didi

javascript - "TypeError: Cannot read property ' 余额 ' of undefined"。不确定哪里出了问题

转载 作者:行者123 更新时间:2023-11-29 21:16:13 25 4
gpt4 key购买 nike

当我运行它时,我得到“TypeError:无法读取未定义的属性‘balance’。”我刚开始学习 Node,我不确定自己做错了什么。请帮忙。

跟作用域有关系吗?我该如何解决?

//create an accounts array:
var accounts = [];

// create a function that allows you to create an account, passing it an account object:
function createAccount(account)
{
accounts.push(account);
return account;
}

// create a function that allows you to lookup an account by passing it a username:
function getAccount(userName)
{
var matchedAccount;

for (var i = 0; i < accounts.length; i++)
{
if (accounts[i] === userName)
{
matchedAccount = accounts[i];
}
}

return matchedAccount;
}

// create a function called deposit:
function deposit(account, amount)
{
if (typeof amount === "number")
{
account.balance = (account.balance + amount);
}
else
{
console.log("Deposit failed. Amount is not a number.")
}
}

// create a function called withdrawal:
function withdraw(account, amount)
{
if (typeof amount === "number")
{
account.balance = (account.balance - amount);
}
else
{
console.log("Withdraw failed. Amount is not a number.")
}
}

// create a function called getBalance, which will return the current balance of the account passed to it:
function getBalance(account)
{
return account.balance;
}

function createBalanceGetter(account)
{
return function()
{
return account.balance;
}
}

var jessica = createAccount(
{
userName: "Jessica",
balance: 0
});

deposit(jessica, 120);
withdraw(jessica, 10);

var jessica2 = getAccount("Jessica");
var getJessica2Balance = createBalanceGetter(jessica2);

console.log(getJessica2Balance());

最佳答案

在您的 getAccount 中,您必须搜索 accounts[i].userName,而不仅仅是 accounts[i]。将 getAccount 函数更改为:

function getAccount(userName)
{
var matchedAccount;

for (var i = 0; i < accounts.length; i++)
{
if (accounts[i].userName === userName)
{
matchedAccount = accounts[i];
}
}

return matchedAccount;
}

现在这对每个帐户进行线性搜索,并将帐户的 userName 与给定的用户名进行比较。之前,您将帐户对象与字符串进行比较,这是不正确的。这导致 createBalanceGetter 尝试访问 undefined.balance,从而导致错误。这是一个 fiddle .

关于javascript - "TypeError: Cannot read property ' 余额 ' of undefined"。不确定哪里出了问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39339375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com