Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.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
JavaScript-获取具有特定值的对象计数_Javascript_Arrays_Javascript Objects - Fatal编程技术网

JavaScript-获取具有特定值的对象计数

JavaScript-获取具有特定值的对象计数,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我提到了下面列出的这些问题,但没有帮我解决 我想从具有特定值的对象获取计数。例如,我有一个数组列表 var testData = [ { "issue_type": "Warning", "created_date": "2019-05-13T13:43:16.437Z", }, { "issue_type": "Warning", "created_date": "2019-05-13T13:45:16.330Z", }, {

我提到了下面列出的这些问题,但没有帮我解决

  • 我想从具有特定值的对象获取计数。例如,我有一个数组列表

    var testData = [
      {
        "issue_type": "Warning",
        "created_date": "2019-05-13T13:43:16.437Z",
      },
      {
        "issue_type": "Warning",
        "created_date": "2019-05-13T13:45:16.330Z",
      },
      {
        "issue_type": "Alert",
        "created_date": "2019-05-13T13:43:16.437Z",
      },
      {
        "issue_type": "Alert",
        "created_date": "2019-05-13T13:45:16.330Z",
      }
    ]
    
    我想数一数有多少个按键为“issue\u type”=“Warning”的对象

    我试过这个循环,但它不是我想要的

    var counts = {};
    for (var i = 0; i < arr.length; i++) {
        var num = arr[i];
        counts[num] = counts[num] ? counts[num] + 1 : 1;
    }
    console.log(count['issue_type']);
    
    var计数={};
    对于(变量i=0;i
    请给我建议出路。

    使用并从筛选器返回的数组中获取数组长度

    filter()方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素

    var testData=[
    {
    “问题类型”:“警告”,
    “创建日期”:“2019-05-13T13:43:16.437Z”,
    },
    {
    “问题类型”:“警告”,
    “创建日期”:“2019-05-13T13:45:16.330Z”,
    },
    {
    “问题类型”:“警报”,
    “创建日期”:“2019-05-13T13:43:16.437Z”,
    },
    {
    “问题类型”:“警报”,
    “创建日期”:“2019-05-13T13:45:16.330Z”,
    }
    ]
    console.log(testData.filter(item=>item.issue_type==“Warning”).length)
    使用并从filter返回的数组中获取数组长度

    filter()方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素

    var testData=[
    {
    “问题类型”:“警告”,
    “创建日期”:“2019-05-13T13:43:16.437Z”,
    },
    {
    “问题类型”:“警告”,
    “创建日期”:“2019-05-13T13:45:16.330Z”,
    },
    {
    “问题类型”:“警报”,
    “创建日期”:“2019-05-13T13:43:16.437Z”,
    },
    {
    “问题类型”:“警报”,
    “创建日期”:“2019-05-13T13:45:16.330Z”,
    }
    ]
    
    console.log(testData.filter(item=>item.issue\u type==“Warning”).length)
    您可以将该值作为计数键

    var testData=[{发布类型:“警告”,创建日期:“2019-05-13T13:43:16.437Z”},{发布类型:“警告”,创建日期:“2019-05-13T13:45:16.330Z”},{发布类型:“警报”,创建日期:“2019-05-13T13:43:16.437Z”},{发布类型:“警报”,创建日期:“2019-05-13T13:45:16.330Z”},
    counts=testData.reduce((c,{issue_type:key})=>(c[key]=(c[key]|0)+1,c),{});
    
    控制台日志(计数)您可以将该值作为计数键

    var testData=[{发布类型:“警告”,创建日期:“2019-05-13T13:43:16.437Z”},{发布类型:“警告”,创建日期:“2019-05-13T13:45:16.330Z”},{发布类型:“警报”,创建日期:“2019-05-13T13:43:16.437Z”},{发布类型:“警报”,创建日期:“2019-05-13T13:45:16.330Z”},
    counts=testData.reduce((c,{issue_type:key})=>(c[key]=(c[key]|0)+1,c),{});
    控制台日志(计数)在这种情况下是你最好的朋友。您应该尝试以下方法:

    const answer = testData.reduce((accumulator, currentVal) => {
      if (currentVal.issue_type === 'Warning') {
        accumulator += 1;
      }
      return accumulator;
    }, 0)
    
    在这种情况下,他是你最好的朋友。您应该尝试以下方法:

    const answer = testData.reduce((accumulator, currentVal) => {
      if (currentVal.issue_type === 'Warning') {
        accumulator += 1;
      }
      return accumulator;
    }, 0)
    

    根据您问题的代码片段,以下内容是一个开始。basoc理念:

    • 迭代数据数组
    • 检查是否存在感兴趣的财产
    • 检查属性是否包含感兴趣的值
    准确地说,符合条件的项目将被计算在内

    您的示例代码片段表明,您可能希望刷新JS语法知识。您可能还想看看其他答案中使用的对数组(例如on)进行操作的内置方法

    var testData=[
    {
    “问题类型”:“警告”,
    “创建日期”:“2019-05-13T13:43:16.437Z”,
    },
    {
    “问题类型”:“警告”,
    “创建日期”:“2019-05-13T13:45:16.330Z”,
    },
    {
    “问题类型”:“警报”,
    “创建日期”:“2019-05-13T13:43:16.437Z”,
    },
    {
    “问题类型”:“警报”,
    “创建日期”:“2019-05-13T13:45:16.330Z”,
    }
    ];
    函数countPropValue(pa_数据、ps_属性、ps_值){
    设n_计数=0;
    对于(变量i=0;ilog(countPropValue(testData,'issue_type','Warning')根据您问题的代码片段,以下是一个开始。basoc理念:

    • 迭代数据数组
    • 检查是否存在感兴趣的财产
    • 检查属性是否包含感兴趣的值
    准确地说,符合条件的项目将被计算在内

    您的示例代码片段表明,您可能希望刷新JS语法知识。您可能还想看看其他答案中使用的对数组(例如on)进行操作的内置方法

    var testData=[
    {
    “问题类型”:“警告”,
    “创建日期”:“2019-05-13T13:43:16.437Z”,
    },
    {
    “问题类型”:“警告”,
    “创建日期”:“2019-05-13T13:45:16.330Z”,
    },
    {
    “问题类型”:“警报”,
    “创建日期”:“2019-05-13T13:43:16.437Z”,
    },
    {
    “问题类型”:“警报”,
    “创建日期”:“2019-05-13T13:45:16.330Z”,
    }
    ];
    函数countPropValue(pa_数据、ps_属性、ps_值){
    设n_计数=0;
    对于(变量i=0;ilog(countPropValue(testData,'issue_type','Warning')您可以简单地使用过滤器

    console.log(
    testData.filter(({issue\u type})=>issue\u type==='Warning')。长度
    )
    var testData=[
    {
    “问题类型”:“警告”,
    “创建日期”:“2019-05-13T13:43:16.437Z”,
    },
    {