我有两个数组:
categories
datarecords
每个数据记录属于特定类别。
在searchfield
上每次使用过滤器(例如datarecords
)时,我想将每个类别的记录总数添加到每个category-object
,因此我可以在每个tab-pane
(例如text: Algemeen
,value: 'general
,countFiltered: 2
)
我为此做了fiddle。
直到现在我没有计数过滤,本地我得到一个与我的小提琴中的第78行相对应的常量错误:
未捕获(在承诺中)类型错误:无法读取未定义的属性“0”
我怎样才能做到这一点?
答案 0 :(得分:7)
this
不是您认为的在这里:
var filtered = results.filter(function (results) {
return (results.category.toLowerCase() == this.categories[cat].value.toLowerCase());
});
您可以将thisArg
传递给filter:
var filtered = results.filter(function (results) {
return (results.category.toLowerCase() == this.categories[cat].value.toLowerCase());
}, this);
或在ES6中,您可以使用arrow function:
var filtered = results.filter(
results => results.category.toLowerCase() == this.categories[cat].value.toLowerCase()
);