使用数据库中的数据查找javascript中的元素数

时间:2019-02-02 07:05:22

标签: javascript

[{'break_time':'09:00'},{'break_time':'09:00'},{'break_time':'09:00'},{'break_time':'10:00' },{'break_time':'10:00'},{'break_time':'15:00'},{'break_time':'09:00'}]如何获得break_time的数量和09的数量:00,10:00和15:00在javascript中?不断收到TypeError:ret3.forEach / filter不是函数

2 个答案:

答案 0 :(得分:0)

您可以创建一个对象并为每个匹配项增加计数,并获得一个最终对象,其中key作为时间值,value作为该时间的计数:

var arr = [{
  'break_time': '09:00'
}, {
  'break_time': '09:00'
}, {
  'break_time': '09:00'
}, {
  'break_time': '10:00'
}, {
  'break_time': '10:00'
}, {
  'break_time': '15:00'
}, {
  'break_time': '09:00'
}];
var obj = {};
arr.forEach((arrObj) => {
  if(obj[arrObj.break_time]){
    obj[arrObj.break_time]++;
  } else {
    obj[arrObj.break_time] = 1;
  }
});
console.log(obj);

答案 1 :(得分:0)

使用准功能方法,您可以编写


var arr = [{'break_time':'09:00'},{'break_time':'09:00'},{'break_time':'09:00'},{'break_time':'10:00'},{'break_time':'10:00'},{'break_time':'15:00'},{'break_time':'09:00'}]
const breakCount = arr.filter(function(it) { return it.break_time }).length
const countByValue = arr.reduce(function(acc, curr) {
    acc[curr.break_time] = (acc[curr.break_time] || 0) + 1
    return acc
}, {})
console.log(breakCount)
console.log(countByValue)

编辑

在所有版本的NodeJ或浏览器上,您可以按以下方式重新排列Ankit Agarwal的答案:

var arr = [{'break_time':'09:00'},{'break_time':'09:00'},{'break_time':'09:00'},{'break_time':'10:00'},{'break_time':'10:00'},{'break_time':'15:00'},{'break_time':'09:00'}]
const breakCount = arr.filter(function(it) { return it.break_time }).length
const countByValue = arr.reduce(function(acc, curr) {
    acc[curr.break_time] = (acc[curr.break_time] || 0) + 1
    return acc
}, {})
console.log(breakCount)
console.log(countByValue)