Array.reduce中的参数名称应该是什么?

时间:2018-08-08 06:52:38

标签: javascript arguments naming-conventions higher-order-functions code-readability

作为代码可读性方面的最佳实践,在Array.reduce中命名回调参数时应使用以下哪种命名约定?

const studentAges= [15,16,14,15,14,20]

  • 通用

    const sum = studentAges.reduce((accumulator,currentValue)=> accumulator +=currentValue,0);

  • 特定

    const sum = studentAges.reduce((sum,age)=> sum+=age,0);

3 个答案:

答案 0 :(得分:1)

请参阅documentation on the reduce parameters and their order

第一个参数是accumulator,后跟currentValuecurrentIndexOptionalarray

就命名约定而言,取决于您以及遵循或喜欢的任何编码标准。

我个人更喜欢您所说的generic approach,因为它们在用途之间是一致的……但还是完全出于个人喜好:)

答案 1 :(得分:1)

您可以将其称为累加器,但是由于累加器的最终值是reduce函数的结果,因此您也可以将其称为result,这使我们更清楚地看到了结果值。我更喜欢结果,因为这有助于指出这一点,否则您必须记住...累加器是返回的内容。当然,您也可以将结果重命名为您要从函数中查找的任何内容。因此,猜测取决于它使它更具可读性的原因。我的首选是结果,因为它还获得每次迭代的结果。

答案 2 :(得分:0)

我想这是一个偏爱,但我会选择通用

const sum = studentAges.reduce((item,accumulator)=> accumulator +=item,0);

,因为这里不需要具体说明。您将回调作为参数传递,这是使参数比参数本身更多地使用参数的方式,从而使回调特定于您的用法。