【发布时间】:2016-10-10 21:23:39
【问题描述】:
我的 ngrx 存储包含两组数据:preferenceGroups 包含一组选定的偏好值和stocks:
有很多preferenceGroups,有两种格式之一,一组布尔值或一个范围:
"preferenceGroups": [
{
"name": "Sectors",
"type": "toggles",
"preferences": [
{
"label": "Sector 1",
"type": "boolean",
"value": true
},
{
"label": "Sector 2",
"type": "boolean",
"value": true
}
]
},
{
"name": "Exchange",
"type": "toggles",
"preferences": [
{
"label": "Exchange 1",
"type": "boolean",
"value": true
},
{
"label": "Exchange 2",
"type": "boolean",
"value": true
}
]
},
{
"name": "Price",
"type": "price-range",
"preferences": {
"label": "Price",
"type": "currency",
"value": {
"minimum": 0,
"maximum": 999
}
}
},
...
]
我也有一堆股票,都是一样的字段,一般是这样的:
"stocks": [
{
"state": {
"accepted": false,
"rejected": false
},
"change": -5.36,
"changePercent": -0.13,
"dividend": 12.05,
"equitySummaryScore": 8,
"exchange": "Exchange 1",
"price": 97.10,
"sector": "Sector 1",
...
},
...
]
我的过滤器的工作方式是针对每个偏好组,我想考虑任何具有与任何设置为 true 的布尔过滤器匹配的值的股票,在范围的情况下,任何在该范围内的值.
我可以使用 Observables 从我的ngrx 商店获取所有股票和preferenceGroups
this.stocks = this._store.select('stocks');
this.preferenceGroups = this._store.select('preferenceGroups');
我需要做的是通过使用this.preferenceGroups 中的数据过滤this.stocks 来将过滤后的股票存储为Observable。
this.filteredStocks = [something I can't figure out]
例如,我列出的单只股票将是匹配的,因为它有 "exchange": "Exchange 1"、"sector": "Sector 1" 和 "price": "97.10"
【问题讨论】: