• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

202
Vistas
Recorriendo una matriz JSON para obtener un valor aleatorio (Javascript)

Estoy tratando de recorrer mi matriz JSON y obtener un valor aleatorio de ella.

Aquí está mi código Json:

 {"cities":[{"city":"St.John","xCoor":931,"yCoor":349},{"city":"Halifax","xCoor":844,"yCoor":424},{"city":"Charlottetown","xCoor":838,"yCoor":407},{"city":"Fredericton","xCoor":800,"yCoor":422},{"city":"Quebec","xCoor":734,"yCoor":427},{"city":"Ottawa","xCoor":685,"yCoor":459},{"city":"Toronto","xCoor":655,"yCoor":483},{"city":"Winnipeg","xCoor":420,"yCoor":430},{"city":"Regina","xCoor":336,"yCoor":417},{"city":"Edmonton","xCoor":250,"yCoor":364},{"city":"Victoria","xCoor":111,"yCoor":398},{"city":"Whitehorse","xCoor":115,"yCoor":235},{"city":"Yellowknife","xCoor":285,"yCoor":271},{"city":"Iqaluit","xCoor":645,"yCoor":243}]}

En este caso, quiero recorrer la matriz "Ciudades" y obtener una "ciudad" aleatoria.

Este es mi código para obtener los datos Json:

 function getJsonData() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function () { if (xhttp.readyState==4 && xhttp.status==200) { schedule = JSON.parse(xhttp.responseText); } } xhttp.open("GET", "capitals.json", true); xhttp.send();}

Esto es lo que he escrito para tratar de obtener una ciudad aleatoria de la matriz de ciudades :

 function drawPlanes() { canvas = document.getElementById("myCanvas"); ctx = canvas.getContext("2d"); var cityNames = schedule["cities"]; for(var i = 0; i < cityNames.length; i++) { var obj = cityNames[i]; var randomCity = obj.city[Math.floor(Math.random()*obj.city)]; console.log(randomCity); }}

En resumen, básicamente solo quiero recorrer este Json Array y obtener un valor aleatorio de la ciudad, por ejemplo: en la consola solo se imprime, digamos "Quebec", pero el problema aquí es que lo que escribí no funciona. Espero que lo que estoy preguntando sea lo suficientemente claro.

almost 3 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Podría [index] una ciudad aleatoria con Math.random() , usando cities.length como su valor máximo.

 const data = {"cities":[{"city":"St.John","xCoor":931,"yCoor":349},{"city":"Halifax","xCoor":844,"yCoor":424},{"city":"Charlottetown","xCoor":838,"yCoor":407},{"city":"Fredericton","xCoor":800,"yCoor":422},{"city":"Quebec","xCoor":734,"yCoor":427},{"city":"Ottawa","xCoor":685,"yCoor":459},{"city":"Toronto","xCoor":655,"yCoor":483},{"city":"Winnipeg","xCoor":420,"yCoor":430},{"city":"Regina","xCoor":336,"yCoor":417},{"city":"Edmonton","xCoor":250,"yCoor":364},{"city":"Victoria","xCoor":111,"yCoor":398},{"city":"Whitehorse","xCoor":115,"yCoor":235},{"city":"Yellowknife","xCoor":285,"yCoor":271},{"city":"Iqaluit","xCoor":645,"yCoor":243}]}; const randomCity = data.cities[Math.floor(Math.random() * data.cities.length)]; console.log(randomCity);

Editar

Si solo desea obtener el nombre de la ciudad, puede obtener la propiedad de la ciudad con .city .

almost 3 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda