Contagem de duplicatas dentro de uma matriz de objetos

Eu tenho uma matriz de objetos da seguinte forma dentro do meu lado do servidor JS:

<code>[
    {
        "Company": "IBM"
    },
    {
        "Person": "ACORD LOMA"
    },
    {
        "Company": "IBM"
    },
    {
        "Company": "MSFT"
    },
    {
        "Place": "New York"
    }
]
</code>

Eu preciso iterar através desta estrutura, detectar quaisquer duplicatas e, em seguida, criar uma contagem de uma duplicata é encontrada ao lado de cada valor.

Ambos os valores devem corresponder para se qualificar como uma duplicata, por ex. "Empresa": "IBM" não corresponde a "Empresa": "MSFT".

Eu tenho as opções de alterar a matriz de entrada de objetos, se necessário. Eu gostaria que a saída fosse um objeto, mas estou realmente lutando para que isso funcione.

EDIT: Aqui está o código que tenho até agora, onde processArray é a matriz listada acima.

<code>var returnObj = {};

    for(var x=0; x < processArray.length; x++){

        //Check if we already have the array item as a key in the return obj
        returnObj[processArray[x]] = returnObj[processArray[x]] || processArray[x].toString();

        // Setup the count field
        returnObj[processArray[x]].count = returnObj[processArray[x]].count || 1;

        // Increment the count
        returnObj[processArray[x]].count = returnObj[processArray[x]].count + 1;

    }
    console.log('====================' + JSON.stringify(returnObj));
</code>

questionAnswers(2)

yourAnswerToTheQuestion