@Proroks

Фильтрация массива объектом?

Добрый день, Есть массив объектов
data: [
        { brand: 'FAI Auto Parts', name: 'Американская армия высадилась в 20 милях от города и, не встречая сопротивления', art: 'DG1Z2001D', availability: 100, delivery: '50 раб. дн 18 сентября', price: 50000 },
        { brand: 'FAI Auto Parts', name: 'Британская армия высадилась в 20 милях от города и, не встречая сопротивления', art: 'DG1Z2001A', availability: 80, delivery: '45 раб. дн 18 сентября', price: 45000 },
        { brand: 'FAI Auto Parts', name: 'Британская армия высадилась в 20 милях от города и, не встречая сопротивления', art: 'DG1Z2001A', availability: 120, delivery: '35 раб. дн 18 сентября', price: 35000 }
      ],

и есть объект
filter: {
        priceMin: '',
        priceMax: '',
        deliveryMin: '',
        deliveryMax: '',
        availabilityMin: '',
        availabilityMax: ''
      }

Нужно отфильтровать массив на основе объекта(минимальная максимальная цена, количество, дней доставки), подскажите оптимальный способ.
  • Вопрос задан
  • 93 просмотра
Пригласить эксперта
Ответы на вопрос 2
Google MDN Array filter
Ответ написан
Комментировать
@jamster
Уточните отфилтровать или отсортировать?
Если на выходе нужен отсортированный массив по возрастанию/убыванию по ключю объекта, то используйте метод sort.
https://developer.mozilla.org/ru/docs/Web/JavaScri...
const newSortedArray = Array.sort((a, b) => {
etc...
})
https://developer.mozilla.org/ru/docs/Web/JavaScri...
Если на выходе нужен новый массив с элементами которые удовлетворяют условию, то используйте метод.
filter.
const newFilteredArray = Array.filter(el => el.price > 50); - Вернёт массив объектов в котором значение свойства price больше 50.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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