Extjs在商店中查找具有相同属性的记录

时间:2014-02-04 12:23:06

标签: javascript extjs store

如何浏览商店并查找具有相同属性的记录数? 我累了filterBy,但在那里你只能输入具体的值而不是属性

假设我有这样的记录:

record1{
name: 'John'
}
record2{
name'John'
}
record3{
name:'Steve'
}

返回具有相同名称的记录

2 个答案:

答案 0 :(得分:3)

只需循环遍历集合:

var seen = {};
store.each(function(rec) {
    var name = rec.get('name');
    if (!seen.hasOwnProperty(name)) {
        seen[name] = 0;
    }
    ++seen[name];
});

答案 1 :(得分:1)

您可能也会对Grouping感兴趣:

var myStore = Ext.create('Ext.data.Store', {
    groupField: 'name',
    groupDir  : 'DESC'
});

myStore.getGroups(); // returns:
[
    {
        name: 'yellow',
        children: [{
            name: 'John'
        }, {
            name: 'John'
        }]
    },
    {
        name: 'Steve',
        children: [{
            name: 'Steve'
        }]
    }
]

然后你可以计算每组中有多少孩子。

(更多详情请见http://docs.sencha.com/extjs/4.2.0/#!/api/Ext.data.Store