javascript - 替代过滤器
问题描述
如果找到状态,我正在映射。该功能似乎工作正常,但有更短的方法或替代方法吗?
例如:
data = {
Items: [
{Id: 434, Status: "Processing"},
{Id: 223, Status: "Completed"}
]
}
mapperData = {
Id: 223,
Name: "Hello World",
Status: data.Items.filter(function(item) {
if (item.Id == 223) {
return item.Status
}
})[0].Status,
}
console.log(mapperData)
回来:
{Id:223,名称:“Hello World”,状态:“已完成”}
解决方案
Status: data.Items.find(function(item) { return item.Id == 223; }).Status
例如:
mapperData = {
Id: 223,
Name: "Hello World",
Status: data.Items.find(function(item) { return item.Id == 223; }).Status,
}
使用 ES2015+ 箭头函数会更好:
mapperData = {
Id: 223,
Name: "Hello World",
Status: data.Items.find(item => item.Id == 223).Status,
}
find
在 ES2015 中添加,但可以很容易地为过时的环境(如 IE11)填充。
推荐阅读
- c++ - 在 CMake 中使用 `git submodules` 和 `ExternalProject_Add` 进行依赖管理有什么关系?
- javascript - 为什么删除 Ajax 请求在 Firefox 上只能工作一次?
- python - 如何仅更改 JSON 中存在的那些变量
- java - 尝试使用 net minidev json 更新 json 数组但出现转换错误
- git - 没有像预期的那样从 git rebase 得到冲突
- gradle - KOTLIN:我应该如何处理这些错误?可能是我的 gradle 实现已经过时了吗?还是带有注释?
- google-cloud-platform - Google Pub/Sub + Cloud Run 生成多个容器
- android - 如何使用 Kotlin 从 Firebase 获取特定数据
- swiftui - 在 SwiftUI 中的 DatePicker 上设置默认日期?
- hive - 我可以将 Cloud Dataproc 与外部 Hive Metastore 一起使用吗?