将计数添加为javascript对象的属性

bfl*_*ign 2 javascript

我有两个数组:

  • 一个人 categories
  • 一个人 datarecords

每个数据记录都属于特定类别.

随着每一个使用过滤器(例如searchfield上)datarecords,我想补充的每个类别记录每一个总数category-object,这样我就可以在每个显示它们tab-pane(例如text: Algemeen,value: 'general,countFiltered: 2)

我为此做了一个小提琴.

直到现在我没有计数过滤,本地我得到一个与我的小提琴中的第78行相对应的常量错误:

未捕获(在承诺中)类型错误:无法读取未定义的属性"0"

我怎样才能做到这一点?

Pau*_*aul 7

this 不是你认为它在这里:

var filtered = results.filter(function (results) {
    return (results.category.toLowerCase() == this.categories[cat].value.toLowerCase());
});
Run Code Online (Sandbox Code Playgroud)

您可以在传递thisArg过滤器:

var filtered = results.filter(function (results) {
    return (results.category.toLowerCase() == this.categories[cat].value.toLowerCase());
}, this);
Run Code Online (Sandbox Code Playgroud)

或者在ES6中你可以使用箭头功能:

var filtered = results.filter(
    results => results.category.toLowerCase() == this.categories[cat].value.toLowerCase() 
);
Run Code Online (Sandbox Code Playgroud)