Я думаю, что использование оператора switch - это слишком много кода, я видел на некоторых веб-сайтах более эффективные способы упростить оператор switch или даже преобразовать в литерал объекта, как некоторые примеры, показанные на этом веб-сайте по ссылке ниже
Перезапись Javascript: замена оператора переключения
Использование литералов объекта и метода карты вместо старого оператора переключения
Я пытался преобразовать оператор switch и вот пример того, что использовали. Оба они не работают должным образом, они отображают неправильный список городов, когда выбрана страна. Англия показывает города Шотландии. html и так далее.
Пример: 1
const city = (county) => ({
"England": $('#uk_states').load('england-cities.html'),
"Scotland": $('#uk_states').load('scotland-cities.html'),
//...
})[county]
let county = city([$('#Uk_Cities option:selected').text()]);
Пример: 2
let city = {
"England": {
"file": $('#uk_states').load('england-cities.html'),
"label": "england"
},
"Scotland": {
"file": $('#uk_states').load('scotland-cities.html'),
"label": "scotland"
},
//...
let county = city[$('#Uk_Cities option:selected').text()];
let countryCity = `${county.file} ${county.label}`;
Я думаю, что проблема может быть связана с let county = city([$('#Uk_Cities option:selected').text()]);
I не знаю, правильно ли я размещаю переключатель (графство) при преобразовании в литерал объекта и в словарь типов городов.
Не могли бы вы, ребята, помочь мне, пожалуйста?
Большое спасибо.
let county = $('#Uk_Cities option:selected').text();
switch (county) {
case 'England':
$('#uk_states').load('england-cities.html');
break;
case 'Scotland':
$('#uk_states').load('scotland-cities.html');
break;
case 'Wales':
$('#uk_states').load('wales-cities.html');
break;
case 'Northern Ireland':
$('#uk_states').load('nireland-cities.html');
break;
default:
}
});
$('#uk_states').change(function () {
let stateSelected = $(this).val();
let responseStatus = 'success';
getTheWeatherData(stateSelected);
});