Задать вопрос
@poshuriku
Небольшой рукожоп в области дизайна и фронтенда

Как обратится к значению proxy(object)?

6807d6144253e999931847.png

я хочу вывести в консоль массив hours: , но видимо не правильно к нему обращаюсь. Я с помощью метода filter создаю новый массив, но обратится к его элементам у меня не совсем получается, в чем моя ошибка и как сделать правильно?

const test = this.ArrBookingHours.filter((hour) => hour.date === day.toDateString())
      console.log(test)
      console.log(test.hours)
  • Вопрос задан
  • 1820 просмотров
Подписаться 3 Простой 7 комментариев
Пригласить эксперта
Ответы на вопрос 1
@eminsk
программирую на python
Проблема в том, что filter() возвращает массив объектов, даже если найден только один элемент. В твоем случае test - это массив с одним объектом Proxy(Object), а не сам объект.
Чтобы получить доступ к свойству hours, тебе нужно обратиться к первому (и единственному) элементу массива:
const test = this.ArrBookingHours.filter((hour) => hour.date === day.toDateString())
console.log(test)
console.log(test[0].hours)

строка console.log(test[0].hours) - это обращение к первому элементу массива

Еще есть компактнее с использованием find и опциональной цепочки:
const booking = this.ArrBookingHours.find(
  hour => hour.date === day.toDateString()
)

console.log(booking?.hours ?? 'Нет записи на эту дату')


Используя этот способ - можно избежать ошибки Cannot read property 'hours' of undefined, если нет ни одного совпадения.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы