@NickForDevelop

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

this.loadData().then(response => {
          if (response && response.data && response.data.users && response.data.users.length) {
            this.usersLocal = response.data.users
          }
        })

Очень раздражает нагромождение чрез точку.
Есть что то проще?
  • Вопрос задан
  • 113 просмотров
Решения вопроса 3
0xD34F
@0xD34F Куратор тега JavaScript
optional chaining:

if (response?.data?.users?.length) {
Ответ написан
sergiks
@sergiks Куратор тега JavaScript
♬♬
есть библиотеки для упрощения этой задачи, например, dot-object
и есть try .. catch

Не вижу проблемы проверить 4 условия. Можно перенести по строкам:
this.loadData().then(response => {
  if (
    response
    && response.data
    && response.data.users
    && response.data.users.length
  ) {
    this.usersLocal = response.data.users
  }
})
Ответ написан
Комментировать
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
Object.prototype.hasOwnNestedProperty = function(propertyPath){
    if (!propertyPath) {
        return false;
    }
    let properties = propertyPath.split('.');
    let self = this;
    for (let i = 0; i < properties.length; i++) {
        var prop = properties[i];
        if (!self || !self.hasOwnProperty(prop)) {
            return false;
        } else {
            self = self[prop];
        }
    }
    return true;
};

let response = {data: {users: {}}}
response.hasOwnNestedProperty('data.users');
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
Rocket Брянск
от 60 000 до 100 000 ₽
22 мая 2024, в 20:14
3600 руб./за проект
22 мая 2024, в 20:08
3000 руб./за проект
22 мая 2024, в 20:01
600000 руб./за проект