#javascript #object
#javascript #объект
Вопрос:
у меня есть объект, у которого есть идентификаторы:
const cities = {
"0": {
"city": "Bielsko-Biała",
"country": "PL",
},
"1": {
"city": "Kielce",
"country": "PL",
},
"2": {
"city": "Kłodzko",
"country": "PL",
}
}
Я хочу удалить 0, 1, 2 и так далее, чтобы получить этот формат:
const cities = [
{
"city": "Bielsko-Biała",
"country": "PL",
},
{
"city": "Kielce",
"country": "PL",
},
{
"city": "Kłodzko",
"country": "PL",
}
]
Это необходимо для меня, потому что я хочу добавить описание к каждому городу, и я не мог отобразить в этом объекте из-за этого формата.
Мне приходилось делать что-то подобное в React, и я думаю, что это очень плохо написанный код:
const cities = [];
countries.map(el => {
cities.push(el.city)
})
let updatedCountries = countries;
cities.forEach((city) => {
axios.get(`https://en.wikipedia.org/api/rest_v1/page/summary/${city}`)
.then(response => {
for (let property in updatedCountries) {
if (updatedCountries.hasOwnProperty(property)) {
if (updatedCountries[property].city === city) {
updatedCountries[property]['description'] = response.data.description
}
}
}
})
})
this.setState({
countries: updatedCountries
})
Ответ №1:
Вы можете использовать Object.values()
Object.values()
Метод возвращаетarray
собственные перечислимые значения свойств данного объекта,
const cities = {
"0": {
"city": "Bielsko-Biała",
"country": "PL",
},
"1": {
"city": "Kielce",
"country": "PL",
},
"2": {
"city": "Kłodzko",
"country": "PL",
}
}
let values = Object.values(cities);
console.log(values);