如何使用Javascript按键值对数据进行排序和测量长度

3
我需要帮助。我有一些数据数组,我需要按键值对其进行排序并测量长度。我将在下面解释我的代码。
var response = [{
      day_id:1,
      day_name:"Monday",
      subcat_id:"2",
      cat_id:"1",
      comment:"hii"
}, {
      day_id:1,
      day_name:"Monday",
      subcat_id:"1",
      cat_id:"2",
      comment:"hello"
}
 {
      day_id:2,
      day_name:"Tuesday",
      subcat_id:"3",
      cat_id:"2",
      comment:"hii"
}]

对于day_id=1,有两组数据,day_id=2同理。我需要根据day_id测量数据集的长度。例如:day_id=1时长度为2。请帮助我。


你在这里有一个排序的例子:https://dev59.com/UWYq5IYBdhLWcg3wxTaq - daremachine
2个回答

2
你可以使用 map 方法将响应中的内容进行转换,保存在一个对象中以记录每个 ID 被访问的次数。
var counter = {};
response.map(function(item) {
    counter[item.day_id] = (counter[item.day_id] || 0) + 1;
});

你的结果在计数器中:
console.log(counter);
// { '1': 2, '2': 1 }

希望这能帮到你。

@subhra。很高兴听到这个好消息 :) - user4227915

0

不要使用 .map,使用 .forEach,因为它不会返回另一个数组。

代码也可以更简洁一些:

var counter = {};
response.forEach(function(item) {
    counter[item.day_id] = ++counter[item.day_id] || 1;
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接