javascript - reduce 可以做 map 做的所有事情吗?
问题描述
我在接受采访时被问到如何使用 JavaScript(一种数组操作)来做到这一点,我说我们可以使用reduce
,但面试官说不,我们应该使用map
,但我有点确定reduce
可以做任何事情filter
或map
正在做的事情。我是对还是错?
抱歉,我无法重现我被问到的问题,但我在这里问的是 JavaScript 中一般的缩减技术......
解决方案
答案是:绝对可以!
实际上,Reduce 可以做任何可以通过单次迭代完成的事情。
筛选:
myArray.reduce(
(result, item) => [...result, ...(myCallback(item) ? [item] : [])],
[]
)
地图:
myArray.reduce(
(result, item) => [...result, myCallback(item)],
[]
)
话虽如此,如果您需要过滤项目,请使用filter()
,如果您需要映射项目,请使用map()
.
推荐阅读
- python - 同一系统错误中的冲突 python 版本
- gitlab - 此图像没有活动标签。Gitlab docker 镜像注册表
- reactjs - React Router Switch:从匹配的路由中更改渲染组件
- talend - 一个输入源一个一个地运行所有上下文配置目标单个Oracle表
- permissions - Microsoft Graph 更新用户相关权限不起作用
- python - 第一次查询后连接游标返回无
- c - 如何使用C中另一个函数的变量?
- python - 使用 python 请求从网页 (.aspx) 上的 asp.net 表单中难以抓取数据
- javascript - 引导日期选择器仅显示日期,没有时间
- reactjs - 从另一个组件更新组件的状态?