几年前,我痴迷于 reduce()。
每个问题看起来都像是一个归约问题。
需要查找表吗?
users.reduce(...)
需要分组吗?
users.reduce(...)
需要过滤吗?
users.reduce(...)
需要转换吗?
users.reduce(...)
需要世界和平?
可能是:
world.reduce(...)
最终我意识到了一些事情。
问题不在于 reduce()。
问题在于我。
因为虽然 reduce() 功能极其强大,但许多开发者最终会进入这样一个阶段:他们开始问一个更重要的问题:
我在这里真的应该使用
reduce()吗?
而且令人惊讶的是,答案往往是:
不。
有时一个简单的:
for...of
更易于阅读。
更易于调试。
更快。
并且归根结底是更好的工程选择。
过度喜爱 reduce() 的问题
开发者经常发现:
reduce()
并突然意识到:
它可以做任何事。
这没错。
问题在于:
能做所有事
≠
应该做所有事
考虑一下:
const usersById =
users.reduce(
(acc, user) => {
acc[user.id] = user
return acc
},
{}
)
很合理。
许多团队都会接受这种写法。
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。