@JavaSscriptNoob

Как проверить существует ли поле в обьекте обьекта и если да то присвоить его значение куда либо?

всем привет , у меня есть единственный обьект в массиве в котором есть множество полей , включая другие обьекты .
[0:{address: {amenity: "Пиццерия Маркони", road: "Мира проспект", borough: "Новозаводский район", city: "Чернигов",…}
boundingbox: ["51.4944802", "51.4945802", "31.2922921", "31.2923921"]
class: "amenity"
display_name: "Пиццерия Маркони, Мира проспект, Новозаводский район, Чернигов, Чернігівська міська громада, Черниговский район, Черниговская область, 14000, Украина"
icon: "https://nominatim.openstreetmap.org/ui/mapicons//food_cafe.p.20.png"
importance: 0.11100000000000002
lat: "51.4945302"
licence: "Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright"
lon: "31.2923421"
osm_id: 1500369378
osm_type: "node"
place_id: 14833558
type: "cafe"}]

В обьекте adress есть множество полей , например :
amenity: "Пиццерия Маркони"
borough: "Новозаводский район"
city: "Чернигов"
country: "Украина"
country_code: "ua"
district: "Черниговский район"
municipality: "Чернігівська міська громада"
postcode: "14000"
road: "Мира проспект"
state: "Черниговская область"

которые я хочу проверять , если они есть то я должен их присвоить их значение в обьект , если нет то ничего не делать .
Сейчас я делаю так
const adress = {
                city: data[0].adress?.city?, // выдаст ошибку
                amenity: data[0].adress?.amenity?, // выдаст ошибку
                road: data[0].adress?.road?, // выдаст ошибку
                houseNumber: data[0].adress?.house_number?, // выдаст ошибку
              };

но понимаю что то то делаю не так , вопрос , что ...?
  • Вопрос задан
  • 63 просмотра
Решения вопроса 2
Lynn
@Lynn
nginx, js, css
> что я делаю не так
используете неправильный синтаксис. (и, кстати, у вас опечатка в слове address)

https://learn.javascript.ru/optional-chaining

...
city: data[0].address?.city,
...
Ответ написан
Aetae
@Aetae Куратор тега JavaScript
Тлен
lodash:
pick(obj, [
  "amenity",
  "borough",
  "city",
  "country",
  "country_code",
  "district",
  "municipality",
  "postcode",
  "road",
  "state"
])
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы