javascript - 如何使用 rxjs 映射通过另一个不同类型的对象列表过滤出一个可观察的对象列表
问题描述
我有一个从 api 返回的可观察列表,我想根据我在本地会话存储中拥有的另一个列表的属性值对其进行过滤。它基本上是一个内部连接。有没有比使用 rxjs 地图/过滤器更好的方法?此过滤器适用于单个值,但我不确定如何根据列表的属性值进行过滤
loadTable() {
this.service.getSomeDataFromAPI()
.pipe(
map(
items => items.filter(item => item.branchCode.indexOf(StaticListOfObjects.branchCode) > -1)
)
)
.subscribe(response => { ... }
);
}
这是我的 staticListOfObject,我需要过滤所有与 branchCode 匹配的对象。
[
{
branchCode: "AV1",
summaryCount: 10,
},
{
branchCode: "AV2",
summaryCount: 5,
},
{
branchCode: "BR1",
summaryCount: 4,
},
];
解决方案
由于 API 调用返回一个列表(我假设是一个数组),您只需要映射它并像这样过滤它;
let filterArray = [
{
branchCode: "AV1",
summaryCount: 10
},
{
branchCode: "AV2",
summaryCount: 5
},
{
branchCode: "BR1",
summaryCount: 4
}]
loadTable() {
this.service.getSomeDataFromAPI().pipe(
map(
items => items.filter( item => {
if (filterArray.find(filterItem => filterItem.branchCode == item.branchCode)) {
return true
} else {
return false
}
})
)
).subscribe(response => { ... });
}
推荐阅读
- cookies - jMeter在Header Request中添加Cookie
- alexa-skills-kit - Alexa 在没有额外 Intent 请求的情况下宣布响应
- python-3.x - 在 Pandas 中垂直拆分一列
- java - 如何在 android 10 以上的聊天应用中处理下载的媒体文件
- c++ - 部分模板模板向量特化
- javascript - React-chartjs-2 环形图画布无法调整大小
- c# - 使用当前用户连接到 SQL Server
- javascript - 将 JS 函数转换为 jQuery
- javascript - 如何在JS中屏蔽字符串的某些位置
- json - Quarkus org.jboss.resteasy.spi.UnhandledException:找不到内容类型 application/json 的 MessageBodyReader