Contar duplicados dentro de una matriz de objetos

Tengo una matriz de objetos como sigue dentro de mi lado del servidor JS:

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

Necesito recorrer esta estructura, detectar cualquier duplicado y luego crear un conteo de un duplicado junto a cada valor.

Ambos valores deben coincidir para calificar como un duplicado, p. Ej. "Compañía": "IBM" no coincide con "Compañía": "MSFT".

Tengo las opciones de cambiar la matriz de entrada de objetos si es necesario. Me gustaría que la salida fuera un objeto, pero realmente estoy luchando para que esto funcione.

EDITAR: Aquí está el código que tengo hasta ahora donde processArray es la matriz como se muestra arriba.

<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>

Respuestas a la pregunta(2)

Su respuesta a la pregunta