java中逗号运算符的含义_逗号运算符什么时候有用?

用Java编写功能代码时,逗号运算符通常非常有用。

考虑一下我为SPA写的这段代码,其中包含以下内容

const actions = _.chain(options)

.pairs() // 1

.filter(selectActions) // 2

.map(createActionPromise) // 3

.reduce((state, pair) => (state[pair[0]] = pair[1], state), {}) // 4

.value();

这是一个相当复杂但真实的场景。在我解释发生了什么时,请耐心等待,在此过程中,请为逗号运算符辩护。

这使用Underscore的链接来

分解传递给此函数的所有选项,使用pairs 它将{ a: 1, b: 2}变成[['a', 1], ['b', 2]]

此属性对数组将被系统中被视为“操作”的属性对过滤。

然后,将数组中的第二个索引替换为一个函数,该函数返回表示该操作的Promise(使用map)

最后,对的调用reduce会将每个“属性数组”(['a', 1])合并回最终对象。

最终结果是options参数的转换版本,该参数仅包含适当的键,并且其值可由调用函数使用。

看着只是

.reduce((state, pair) => (state[pair[0]] = pair[1], state), {})

您可以看到reduce函数以一个空状态对象开始state,并且对于每个代表键和值的对,该函数state在将属性添加到与键/值对相对应的对象后,会返回相同的对象。由于ECMAScript 2015的箭头函数语法,函数主体是一个表达式,因此,逗号运算符允许使用简洁而有用的“ iteratee”函数。

就个人而言,我在使用ECMAScript 2015 + Arrow Functions以更实用的样式编写Javascript时遇到了很多情况。话虽如此,在遇到箭头函数之前(例如在编写问题时),我从未以任何故意的方式使用逗号运算符。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值