Tengo el siguiente código donde necesito obtener un valor aleatorio:
const namesJson = { "nombre1": "Raghat", "nombre2": "Uhmla", "nombre3": "Borto" }; const btnName = document.getElementById('btn') btnName.onclick = function names() { var properties = Object.getOwnPropertyNames(namesJson); var index = Math.floor(Math.random() * properties.length); var output = {}; output[properties[index]] = namesJson[properties[index]]; document.getElementById("mensaje").innerHTML = JSON.stringify(output); } <button type="button" id="btn">Get random name</button> <h2>Mensaje:</h2> <div id="mensaje"></div> Con esto tengo {"nombre2": "Uhmla"}
Quiero obtener el valor como Uhmla , ¿cómo puedo hacerlo?
Puede usar Object.values para obtener una matriz de valores, luego con el aleatorio puede obtener el valor sin encadenar, por lo que sin el " :
const namesJson = { "nombre1": "Raghat", "nombre2": "Uhmla", "nombre3": "Borto" }; const btnName = document.getElementById('btn') btnName.onclick = function names() { var properties = Object.values(namesJson); var index = Math.floor(Math.random() * properties.length); document.getElementById("mensaje").innerHTML = properties[index]; } <button type="button" id="btn">Get random name</button> <h2>Mensaje:</h2> <div id="mensaje"></div>Prueba esto:
const namesJson = { "nombre1": "Raghat", "nombre2": "Uhmla", "nombre3": "Borto" }; const names = Object.values(namesJson); // or just ["Raghat", "Uhmla", "Borto"]; const btnName = document.getElementById('btn') btnName.onclick = () => { document.getElementById("mensaje").innerHTML = names[Math.floor(Math.random() * names.length)] } <button type="button" id="btn">Get random name</button> <h2>Mensaje</h2> <div id="mensaje"></div>