por ejemplo, dada la matriz de entrada
const puntuado= ['Lewandowski'1, 'Gnarby'1, 'Lewandowski', 'Hummels'];
deberíamos obtener una salida como
{Lewandowski: 2, Gnarby: 1, Hummels: 1}
Y esto debe hacerse solo con la ayuda de operadores lógicos.
Consideremos la matriz
const scored= ['Lewandowski', 'Gnarby', 'Lewandowski', 'Hummels'];Entonces tenemos que crear un objeto vacío.
const scorers={};Ahora recorriendo la matriz podemos hacer
for (const player of scored) { (scorers[player] += 1) || (scorers[player] === 1 || (scorers[player] = 1)); }(goleadores [jugador] += 1):-> Primero intentamos agregar fingiendo que el "jugador" está allí en el objeto. Si el jugador está allí, se agregará uno; de lo contrario, si el "jugador" no está allí, regresará Nan y continúe con la siguiente expresión (goleadores [jugador] === 1 || (goleadores [jugador] = 1)). Luego verificamos los siguientes pasos.
goleadores[jugador] === 1:-> A continuación, si el jugador está allí, comprobamos si el valor es 1 y si tiene el valor 1, la operación no continúa. Si el jugador tiene el valor 1, significa que tiene ya se le ha asignado un valor inicial.
goleadores[jugador] = 1:-> El jugador no tiene un valor de 1, le asignamos un valor de 1 para empezar.
A continuación se muestra cómo se ve el código final
const scored = ['Lewandowski', 'Gnarby', 'Lewandowski', 'Hummels']; const scorers = {}; for (const player of scored) { (scorers[player] += 1) || (scorers[player] === 1||(scorers[player]=1)); } console.log(scorers);