【问题标题】:Counting occourences of a variable in an array filled with objects in JavaScript / Angular计数在 JavaScript / Angular 中填充对象的数组中变量的出现次数
【发布时间】:2015-09-26 09:50:03
【问题描述】:

假设我有一个充满这样的对象的数组:

 {conversation_id: 38
  id: 99
  is_seen: 1 
  message: "Hej Kristina"
  timestamp: "2015-07-08T10:50:49.000Z"'
 }

现在我希望我能找出这些对象中有多少将is_seen 设置为1conversation_id 设置为38

我可以通过使用forEach 循环来解决这个问题,但是我正在寻找一种更清洁、甚至可能更高效的解决方案。

我的应用程序是AngularJs application,所以我正在寻找本机JavaScriptAngular 解决此问题的方法。

【问题讨论】:

  • 你可以使用Array.filter()。类似于:my_array.filter(function(el) { return el.conversation_id == 38 && is_seen == 1; }).length;

标签: javascript arrays angularjs filtering


【解决方案1】:

你可以使用 Angular js 过滤器

  var seenObjects = $filter('filter')(itemsList, function(rule) {
     return rule.is_seen === 1 && rule.conversation_id === 38;
   });
console.log(seenObjects.length);

【讨论】:

  • 你忘了检查conversation_id
【解决方案2】:

可以使用原生的Array.filter()函数:

var countOfSeenItems = my_array.filter(function (el) {
  return el.conversation_id == 38 && is_seen == 1; 
}).length;

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-02-08
  • 2020-01-20
  • 1970-01-01
  • 1970-01-01
  • 2021-09-21
  • 2017-09-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多