const quizData = [{ question: "Which of the following purpose, JavaScript is designed for ?", a: 'To Execute Query Related to DB on Server', b: 'To Style HTML Pages', c: ' To Perform Server Side Scripting Opertion', d: ' To add interactivity to HTML Pages.', correct: 'd' }, { question: "how old is adnan?", a: '10', b: '20', c: '30', d: '40', correct: 'c' }]
Lo anterior es un cuestionario de datos. Quiero obtener solo el valor de la clave que está en el valor 'correcto' de la clave. Como en la primera pregunta, la respuesta correcta es 'd', por lo que solo quiero obtener el valor de la clave 'd'.
Probé este código pero dio una respuesta indefinida
let rs = quizData[0].correct console.log(quizData[0].question + "\n" + quizData[0].rs)
Puedes usar un código como este:
function getCorrectAnswerAtIndex(data, index) { const item = data[index] return item[item.correct] }
Uso:
// get answer at 0 console.log(quizData[0].question + '\n' + getCorrectAnswerAtIndex(0))
Parece que está tratando de descubrir cómo acceder a las propiedades de un objeto cuando el nombre de la propiedad está almacenado en una variable (en lugar de codificada).
Los siguientes 3 bits de código obtienen el mismo valor de myObj
:
myObj.myKey
o
myObj['myKey']
o
const myDynamicKey = 'myKey';
myObj[myDynamicKey]
Entonces, lo siguiente debería funcionar para usted en este caso:
const quizData = [{ question: "Which of the following purpose, JavaScript is designed for ?", a: 'To Execute Query Related to DB on Server', b: 'To Style HTML Pages', c: ' To Perform Server Side Scripting Opertion', d: ' To add interactivity to HTML Pages.', correct: 'd' }, { question: "how old is adnan?", a: '10', b: '20', c: '30', d: '40', correct: 'c' }]; const correctLetter = quizData[0].correct; console.log(quizData[0].question + "\n" + quizData[0][correctLetter]);