查找对象中重复属性值的计数

use*_*259 1 javascript object duplicates

var db = [
  {Id: "201" , Player: "Nugent",Position: "Defenders"},
  {Id: "202", Player: "Ryan",Position: "Forwards"},
  {Id: "203" ,Player: "Sam",Position: "Forwards"},
  {Id: "204", Player: "Bill",Position: "Midfielder"},
  {Id: "205" ,Player: "Dave",Position: "Forwards"},
];
Run Code Online (Sandbox Code Playgroud)

我怎样才能找到重复对象的数量Position.

注意我有重复的值为"Forwards"(第二,第三和最后一个对象)

我试过做:

for (var key in db) {
  var value = db[key];
  if ( count of duplicated values == 3) {
    console.log("we have three duplicated values)
  }
}
Run Code Online (Sandbox Code Playgroud)

在对象循环时是否可以执行此操作?

the*_*eye 7

使用另一个对象作为计数器,就像这样

var counter = {};
for (var i = 0; i < db.length; i += 1) {
    counter[db[i].Position] = (counter[db[i].Position] || 0) + 1;
}

for (var key in counter) {
    if (counter[key] > 1) {
        console.log("we have ", key, " duplicated ", counter[key], " times");
    }
}
Run Code Online (Sandbox Code Playgroud)