typescript - 您将如何使用 lambda 简化这段代码?
问题描述
我正在学习 lambda。告诉我如何简化这个表达式?我只有一张地图,谢谢!
array.map(value => {
if (value.id !== 1) {
value.id -= 1;
}
});
解决方案
您可以重构为 afilter()
进行id
检查和 aforEach()
进行id
修改,如下所示:
array.filter(v => v.id !== 1).forEach(v => v.id--);
我不确定这是否真的算作“简化”;它所做的只是将调用两步回调的单个方法转换为两个方法,每个方法调用一步回调。我会说哪个版本(如果有的话)更简单,这是一个见仁见智的问题。
但是,在任何一种情况下,您都可能希望使用forEach()
而不是map()
. 它们相似,但map()
为原始数组的每个元素生成一个由回调的返回值组成的新数组,而forEach()
只是调用回调并且不返回任何内容。由于您似乎不关心回调的返回值并且您不保存array.map()
某处的结果,我建议forEach()
.
推荐阅读
- python-3.x - 在 Bigquery 中为多个 CSV 文件自动创建表
- c - C函数检查数组是否平衡(递归)
- c - 为什么在不同操作系统上编译时可执行文件大小不一样
- package - 如何停止 atom-beautify 自动格式化代码?
- android-studio - 在 android studio 中找不到 Gradle 任务
- r - 使用 geom_hex 仅绘制高密度数据
- php - Laravel:模型和枢轴之间的多对多
- eclipse - 未能执行目标 org.robotframework:robotframework-maven-plugin:2.0.0:run 无效的测试数据或命令行选项
- android - 如何使 Android 相机权限可选 - Google Play 不采用清单设置
- c# - c# Forms - 向属性编辑器公开一个数组以进行自定义控件