gpt4 book ai didi

带有默认值的 Array.reduce 的 CoffeeScript 习惯用法

转载 作者:行者123 更新时间:2023-12-04 05:26:08 25 4
gpt4 key购买 nike

在 CoffeeScript 中,有时我需要调用 Array.reduce(...) with a default value ;然而,不幸的参数排序意味着初始/默认值在 reduce 函数本身之后,这意味着我必须使用很多括号,这似乎比 CoffeeScript 想要的要丑陋得多。

例如:

items = [ (id:'id1', name:'Foo'), (id:'id2', name:'Bar') ] # ...
itemsById = items.reduce(((memo, item) -> # <-- Too many parens!
memo[item.id] = item
memo), {}) # Ugly!

在 CS 中有没有更惯用的方法来做到这一点?

最佳答案

我自己也用其他功能遇到过这个问题。如果它真的把事情弄得一团糟(或者它真的让我感到困扰),我可能会在其他地方声明该函数(可能在该行上方),然后将该函数作为参数传递,如下所示:

reduce_callback = (memo, item) ->
memo[item.id] = item
memo

itemsById = items.reduce reduce_callback, {}

不幸的是,您垂直扩展了很多,这可能是也可能不是可取的。这只是一般性建议。

关于带有默认值的 Array.reduce 的 CoffeeScript 习惯用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22028924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com