【发布时间】:2017-05-28 06:45:43
【问题描述】:
我最近添加了 eslint 规则no-param-reassign。
但是,当我使用reduce 构建一个对象(initialValue 为空对象)时,我发现自己需要在每次回调迭代时修改accumulator(回调函数的第一个参数),这会导致no-param-reassign linter 投诉(正如人们所期望的那样)。
const newObject = ['a', 'b', 'c'].reduce((result, item, index) => {
result[item] = index; // <-- causes the no-param-reassign complaint
return result;
}, {});
有没有更好的方法来使用reduce 构建一个不修改accumulator 参数的对象?
或者我应该在我的 reduce 回调函数中简单地禁用该行的 linting 规则?
【问题讨论】:
-
注意,这特别是因为您已将
"props": true传递给规则。默认情况下,它不会抱怨这一点。如果您不想要这种行为,似乎将其设置为false是您想要的吗?或者用// eslint-disable-line no-param-reassign.标记它 -
这是一个很好的观点@loganfsmyth。我会做一些重新检查,看看将“props”设置为 true 是否真的是我们想要的......
标签: javascript ecmascript-6 eslint