Tengo curiosidad acerca de esta línea y nunca he visto este formato con una matriz justo después de la variable:
pics[coinToss() === 'heads' ? 'kitty' : 'doggy'] para renderizar pics.doggy o pics.kitty
¿Hay documentación específica sobre este formato sobre la que pueda leer más?
import ReactDOM from 'react-dom'; function coinToss () { // Randomly return either 'heads' or 'tails'. return Math.random() < 0.5 ? 'heads' : 'tails'; } const pics = { kitty: 'https://content.codecademy.com/courses/React/react_photo-kitty.jpg', doggy: 'https://content.codecademy.com/courses/React/react_photo-puppy.jpeg' }; const img = <img src={pics[coinToss() === 'heads' ? 'kitty' : 'doggy']} />; ReactDOM.render( img, document.getElementById('app') );No es una matriz, es un acceso de propiedad , como cuando accede a los elementos de una matriz con myArray[5] para obtener el sexto elemento (que es la propiedad 5 de la matriz), pero funciona de la misma manera para las propiedades de cadena de los objetos: pics['kitty'] es lo mismo que pics.kitty .
El nombre de la propiedad a la que se accede es coinToss() == 'heads' ? 'kitty' : 'doggy' se evalúa como (¿qué usa ?: para producir 'kitty' o 'doggy' dependiendo del resultado de coinToss() ).
Aquí es funcionalmente lo mismo que coinToss() === 'heads' ? pics.kitty : pics.doggy .