配列を辞書式に並べ替えました。次のように並べ替えられます:
const cityOfTheMoscow = ['Москва','Апрелевка', 'Балашиха', 'Видное', 'Воскресенск', 'Дзержинский', 'Дмитров', 'Долгопрудный', 'Домодедово',
'Дубна', 'Егорьевск', 'Жуковский', 'Истра', 'Клин', 'Коломна', 'Королёв', 'Лыткарино', 'Люберцы', 'Мытищи', 'Наро-Фоминск',
'Ногинск', 'Одинцово', 'Орехово-Зуево', 'Подольск', 'Протвино', 'Пушкино', 'Раменское', 'Реутов', 'Сергиев Посад', 'Серпухов',
'Солнечногорск', 'Старая Купавна', 'Ступино', 'Фрязино', 'Химки', 'Чехов', 'Щелково', 'Электросталь']
const result = response.data
result.sort(function (a, b) {
if (a.Name > b.Name) { //
return 1;
}
if (a.Name < b.Name) {
return -1;
}
return 0;
});
self.resultZips = result
配列「cityOfTheMoscow」から最初に値を追加し、次に辞書式に値を追加するにはどうすればよいですか?私は次のようにしようとしました:
result.unshift(...self.cityOfTheMoscow)
それは機能しますが、cityOfTheMoscowは1つの値を持つ配列であり、「Name」プロパティが存在するオブジェクトになります。
結果の配列を更新すると、次のようになります。
0: {
Code: 0,
CountryCode: 131,
Region: 'Ростовская обл',
Name: 'Ростов'
},
...
43: {
Code: 412,
CountryCode: 123,
Region: 'Московская обл'
Name: 'Москва'
}
この配列には、cityOfTheMoscowの配列に含まれる都市がすでに存在しますが、配列の最初の値が配列cityOfTheMoscowで指定された値になるように、並べ替え順序が正確に必要です。
と配列のarray#concat
両方を連結するために使用できます。keyの値を追加するだけなので、を使用しての配列を作成できます。cityOfTheMoscow
result
Name
array#map
Name
[].concat(cityOfTheMoscow, result.map(({Name}) => Name))
更新されたコード:
const cityOfTheMoscow = ['Москва','Апрелевка', 'Балашиха', 'Видное', 'Воскресенск', 'Дзержинский', 'Дмитров', 'Долгопрудный', 'Домодедово',
'Дубна', 'Егорьевск', 'Жуковский', 'Истра', 'Клин', 'Коломна', 'Королёв', 'Лыткарино', 'Люберцы', 'Мытищи', 'Наро-Фоминск',
'Ногинск', 'Одинцово', 'Орехово-Зуево', 'Подольск', 'Протвино', 'Пушкино', 'Раменское', 'Реутов', 'Сергиев Посад', 'Серпухов',
'Солнечногорск', 'Старая Купавна', 'Ступино', 'Фрязино', 'Химки', 'Чехов', 'Щелково', 'Электросталь'];
const result = response.data;
result.sort(function (a, b) {
if (a.Name > b.Name) { //
return 1;
}
if (a.Name < b.Name) {
return -1;
}
return 0;
});
const resultZips = [].concat(cityOfTheMoscow, result.map(({Name}) => Name));
const cityOfTheMoscow = ['Москва','Апрелевка', 'Балашиха', 'Видное', 'Воскресенск', 'Дзержинский', 'Дмитров', 'Долгопрудный', 'Домодедово','Дубна', 'Егорьевск', 'Жуковский', 'Истра', 'Клин', 'Коломна', 'Королёв', 'Лыткарино', 'Люберцы', 'Мытищи', 'Наро-Фоминск','Ногинск', 'Одинцово', 'Орехово-Зуево', 'Подольск', 'Протвино', 'Пушкино', 'Раменское', 'Реутов', 'Сергиев Посад', 'Серпухов','Солнечногорск', 'Старая Купавна', 'Ступино', 'Фрязино', 'Химки', 'Чехов', 'Щелково', 'Электросталь'],
data = [{Name: 'Ростов'}, {Name: 'Москва'}, {Name: 'Щелково'}, {Name: 'Клин'}];
data.sort((a,b) => (cityOfTheMoscow.indexOf(a.Name) + 1 || Infinity) - (cityOfTheMoscow.indexOf(b.Name) + 1 || Infinity));
console.log(data);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加