语法错误Javascript foreach

时间:2018-07-27 07:07:07

标签: javascript reactjs

好的。我是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。而且有效!我没看到那个错误

5 个答案:

答案 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