好的。我是Java开发人员(新)。我试图找出Javascript。和React,这就是为什么我有“ this.props”,它来自减速器的原因。无论如何
我有一个ID为ID的对象。 以及一个具有ID和名称的帐户数组。 我只想将每个帐户数组ID与对象ID进行比较,然后返回帐户名称。简单吧?显然不适合我。我收到语法错误,我真的不知道我在做什么错...
getName = object => {
const objectId = object.id;
const name = this.props.accounts.foreach(account => (
if (account.id === objectId)
return this.account.name;
)
)
return name;
}
编辑:谢谢大家!我已经将“()”更改为“ {}”,并将this.account.name更改为account.name。而且有效!我没看到那个错误
答案 0 :(得分:0)
您在传递给foreach
的回调函数中使用括号而不是括号。
getName = object => {
const objectId = object.id;
const name = this.props.accounts.foreach(account => {
if (account.id === objectId)
return this.account.name;
}
)
return name;
}
答案 1 :(得分:0)
这只是一个小错误。每当执行代码块时,它都应该位于{}中,而不是()中。就像Java或大多数编程语言一样。
getName = object => {
const objectId = object.id;
const name = this.props.accounts.foreach(account => {
if (account.id === objectId)
return this.account.name;
}
)
return name;
}
答案 2 :(得分:0)
替换
return this.account.name;
收件人
return account.name;
为,
const name = this.props.accounts.foreach(account => {
if (account.id === objectId)
return account.name;
})
因为这是指道具而不是说明。由于在forEach的参数中有帐户对象,因此您可以直接访问名称。
答案 3 :(得分:0)
它是语法错误。考虑使用能够捕获此类错误的编辑器/ IDE。注释了代码中需要更改的内容:
getName = object => {
const objectId = object.id;
const name = this.props.accounts.foreach(account => ( // should be {
if (account.id === objectId)
return this.account.name;
) // should be }
)
return name;
}
答案 4 :(得分:0)
在forEach中,每个传递函数的函数都需要parathesis({})而不是圆括号...您所做的一切都很好,只有问题是parathesis。。您的代码应如下所示:
const name = this.props.accounts.foreach(account => {
if (account.id === objectId)
return account.name;
}
)
P.S .:您也可以使用过滤器代替forEach