Javascript &引用;TypeError:无法读取属性';余额';“未定义的”;。不知道怎么了

Javascript &引用;TypeError:无法读取属性';余额';“未定义的”;。不知道怎么了,javascript,node.js,Javascript,Node.js,当我运行它时,我得到“TypeError:无法读取未定义的属性‘balance’” 我是学习节点的新手,我不确定自己做错了什么。请帮忙 这和范围有关吗?我该怎么修 //创建帐户数组: var账户=[]; //创建一个函数,允许您创建帐户,并向其传递帐户对象: 函数createAccount(account) { 账户。推送(账户); 返回帐户; } //创建一个函数,允许您通过传递用户名来查找帐户: 函数getAccount(用户名) { var匹配账户; 对于(变量i=0;i

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

这和范围有关吗?我该怎么修

//创建帐户数组:
var账户=[];
//创建一个函数,允许您创建帐户,并向其传递帐户对象:
函数createAccount(account)
{
账户。推送(账户);
返回帐户;
}
//创建一个函数,允许您通过传递用户名来查找帐户:
函数getAccount(用户名)
{
var匹配账户;
对于(变量i=0;i
在您的
getAccount
中,您必须搜索
帐户[i]。用户名
,而不仅仅是
帐户[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;
}
函数getAccount(用户名)
{
var匹配账户;
对于(变量i=0;i

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

这绝对是问题所在!几个小时以来,我一直在想到底出了什么问题。非常感谢你!(我不能推翻你的答案,因为我的声誉不到15……我试过了。)没问题@Jess,很高兴我帮了忙!