Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 使用Vue js计算数组中特定类别的筛选项的长度_Arrays_Vuejs2_Count - Fatal编程技术网

Arrays 使用Vue js计算数组中特定类别的筛选项的长度

Arrays 使用Vue js计算数组中特定类别的筛选项的长度,arrays,vuejs2,count,Arrays,Vuejs2,Count,我有一个如下所示的数组: { "blogs": [ { "id": 1, "name": "Test title 1", "category": "tennis", }, { "id": 2, "name": "Test titel 2&q

我有一个如下所示的数组:

{
  "blogs": [
    {
      "id": 1,
      "name": "Test title 1",
       "category": "tennis",
    },
    {
      "id": 2,
      "name": "Test titel 2",
      "category": "football",
    },
    // etc
}
我知道我可以像这样得到数组的长度{{getFilteredata.length}

但我如何计算某一类别物品的长度呢

更新:

我设法显示了一个类别长度,并结合了活动过滤器。下面是结果的一个例子

但现在我只把它定义为网球类。如何组合此方法,使其独立显示所有3个类别的长度

更新2:
多亏了Mohammed的回答,我用了一种方法,而不是使用计算属性。通过这些方法,您可以传递参数。

您可以使用以下方法:

getLengthofaCategory(cat){
  var categoryLength = blogs.filter((item) => item.category == cat);
  return categoryLength.length;
}

您仍然应该使用computed,因为如果让它返回一个包含每个类别计数的对象,则无需传递参数,而是将该类别指定为对象键。返回带有计数的对象的方法是使用reduce。通过使用computed函数,只有当它所依赖的数据发生更改时,函数才会再次执行,而不是每次都要花费调用过滤器的费用,对象访问速度要快几百倍我曾经为此做过一次jsperf

  computed: {
      categoryCount: function() {
          return blogData.blogs.reduce((catCount, blogData) => {
              catCount[blogData.category] = catCount[blogData.category] || 0;
              catCount[blogData.category]++
              return catCount;
          }, {})
      }
    }

    // USAGE: categoryCount['tennis']

blogs.filter{category}=>category===='which'。length@Robby对不起,我还不明白。在我的示例中,我必须如何使用它?