我有一个“dstore/Memory”对象,声明如下:
this.flightStore = new Memory({
data: flights,
idProperty: 'myId'
});
我想返回一个过滤后的集合来显示,所以我写了这样的代码:
var test = this.flightStore.filter({matchType:view});
它返回一个'test'对象,但'data'字段为空。然而,当我编写相同的代码,但添加一个forEach函数时:
this.flightStore.filter({matchType:view}).forEach(function(flight) { ... }
这很好地工作,我一个接一个地得到了过滤结果,然后我可以为过滤后的集合构建一个数组,我很好奇为什么我的第一行不起作用,是否有一种方法可以让它起作用,而不必循环遍历每个结果并手动构建我的数组。
谢谢!
1条答案
按热度按时间91zkwejq1#
filter
方法只应用过滤器,不提取数据。forEach
方法提取数据并对其应用回调。如果要在应用过滤器后提取数据,请调用fetch
:如果使用同步存储(
dstore/Memory
),则fetchSync
方法可用: