這是我正在閱讀并嘗試根據要求更改結構的輸入 json。但無法這樣做的國家/地區我可以放入物件但時區我無法閱讀。任何人都可以幫助我清楚地作業物體稍微硬一點。
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);
//需要輸出--
[{
"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"]
}
]
不確定我應該為實作輸出撰寫什么邏輯。
uj5u.com熱心網友回復:
腳本:
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);
}
腳步:
- 首先,獲取國家,然后映射它們以創建一個陣列。
- 接下來,獲取每個國家/地區的城市串列,然后將其再次映射到他們自己的時區。
- 最后,將國家名稱和時區作為一個物件回傳,以獲得這些物件的陣列。
輸出:

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/467379.html
標籤:javascript
