Este es el json de entrada que estoy leyendo y tratando de cambiar la estructura según el requisito. Pero no puedo hacerlo, los países que puedo poner dentro del objeto pero la zona horaria no puedo leer. ¿Puede alguien ayudarme claramente? Necesito trabajar en objetos un poco más difícil.
let timezone = { countries: { Algeria: { cities: { "Algiers": { city: "Algiers", timezone: "(UTC+01:00) W. central africa standard time", ianaTz: "Africa/Algiers", }, }, }, Argentina: { cities: { "Buenos aires": { city: "Buenos aires", timezone: "(UTC-03:00) Argentina standard time", ianaTz: "America/Argentina/Buenos_Aires", }, "Cordoba": { city: "Cordoba", timezone: "(UTC-03:00) Argentina standard time", ianaTz: "America/Argentina/Cordoba", }, "Tucuman": { city: "Tucuman", timezone: "(UTC-03:00) Argentina standard time", ianaTz: "America/Argentina/Tucuman", }, }, } } } function editTimezone(timezone) { var arr = []; for (var key in timezone.countries) { var city = timezone.countries[key].cities; for (var cit in city) { var timezone = timezone.countries[key].cities.cit.timezone; //undefined } arr.push({ "country": key, "timezone": [timezone] }) } console.log(arr); } editTimezone(timezone);// SALIDA REQUERIDA--
[{ "country":"Algeria" "timezone": ["((UTC+01:00) W. central africa standard time"] }, { "country":"Argentina" "timezone": ["(UTC-03:00) Argentina standard time","(UTC-03:00) Argentina standard time","(UTC-03:00) Argentina standard time"] } ]No estoy seguro de qué lógica debo escribir para lograr el resultado.
function editTimezone() { var countries = timezone.countries; var arr = Object.keys(countries).map(country => { var cities = countries[country].cities; return { 'country': country, 'timezone' : Object.keys(cities).map(city => cities[city].timezone) } }); console.log(arr); }