• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

206
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error