Ahora estoy aprendiendo sobre la reducción de Javascript. En el siguiente código, no entiendo acc[key] porque podemos acceder a las propiedades de los objetos usando acc["key"] o acc.key . Eso es lo que aprendí. pero obviamente el siguiente código funciona correctamente... ¿por qué?
const arr = ['Cat', 'Dog', 'Bird', 'Cat'] const result = arr.reduce((acc, key) => { if (key in acc) { acc[key]++ } else { acc[key] = 1 } return acc }, {}) console.log(result) // { Cat: 2, Dog: 1, Bird: 1 }Entonces, como @Alexandro mencionó que la key es una cadena, de hecho, es el valor o los valores de la matriz arr cuyo tipo es una cadena. Además, sabemos que para acceder a los valores de un objeto seguimos dos formas: notación cuadrada (p. ej arr[key] ) o notación de puntos (p. ej., arr.key ). Preferimos usar notación cuadrada en caso de que haya una clave hecha o contenga espacios u otros caracteres especiales.