规范化Javascript Termary结果,以便两个数组

时间:2017-05-01 18:38:19

标签: javascript

我正在使用React和Redux。我有以下变量赋值,它检查selectedAccount prop是否存在。如果是这样,它将获取account_number并将其存储在accountNumbers中。如果用户没有选择帐户,则三元语句将查看allAccounts道具并将该对象数组减少到一组帐号。

> let accountNumbers = this.props.selectedAccount ?
> this.props.selectedAccount.toJS().account_number :
>       this.props.allAccounts.reduce(( accumulator, currentElement ) => accumulator.concat(currentElement.account_number));

三元语句的第一个表达式返回一个字符串;而第二个表达式返回一个数组。我试图让第一个表达式返回一个数组。有任何想法吗?我喜欢在一行中完成所有这些。提前致谢。感谢所有帮助。

请注意我的对象结构如下:

> selectedAccount: { account_nickname: "X", account_number: "123456",
> mailing_address: "The White House" }
> 
> allAccounts: [ 0: { account_nickname: "X", account_number: "123456",
> mailing_address: "The White House" }, 1: { account_nickname: "Y",
> account_number: "76543", mailing_address: "Washington Monument" } ]

1 个答案:

答案 0 :(得分:0)

您的三元组的第一部分会返回一个帐号,而不是一个帐号。我怀疑你想要返回selectedAccount(?)。为了使它成为一个单项数组,只需用方括号括起来,即:

let accountNumbers = this.props.selectedAccount ?
   [this.props.selectedAccount] :
   this.props.allAccounts.reduce(( accumulator, currentElement ) => accumulator.concat(currentElement.account_number));