将计数添加为javascript对象

时间:2016-01-05 20:22:19

标签: javascript

我有两个数组:

  • 一个categories
  • 一个datarecords

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

searchfield上每次使用过滤器(例如datarecords)时,我想将每个类别的记录总数添加到每个category-object,因此我可以在每个tab-pane(例如text: Algemeenvalue: 'generalcountFiltered: 2

我为此做了fiddle

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

  

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

我怎样才能做到这一点?

1 个答案:

答案 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() 
);