Как перебрать массив со словарями по определенному столбцу (ключу), начиная и заканчивая определенным индексом?

Рейтинг: -2Ответов: 1Опубликовано: 27.01.2023

Есть массив со словарями:

let array = 
[
   { "Color":  "Белый",       "Count": 45,   "Price": 243  }, 
   { "Color":  "Оранжевый",   "Count": 1,    "Price": 653  }, 
   { "Color":  "Красный",     "Count": 67,   "Price": 33  },  
   { "Color":  "Зелёный",     "Count": 23,   "Price": 457  }, 
   { "Color":  "Синий",       "Count": 12,   "Price": 39  }
   { "Color":  "Желтый",      "Count": 50,   "Price": 300  }
];

Необходимо получить все значения столбца 3 (ключ "Price"), у которых значения ключа "Count" больше 5 (>5). При этом нужно начать поиск со второй строки и закончить четвертой.

То есть по итогу должны отобраться значения 33 и 457.

Подскажите, как на JavaScript реализовать данное условие?

Ответы

▲ 1Принят

Я разделил массив на часть с помощью метода .slice, после чего использовал .filter для фильтрации по количеству элементов (> 5) и вернул массив с ценой с помощью .map.

const array = [
  { 'color': 'Белый',     'count': 45, 'price': 243 }, 
  { 'color': 'Оранжевый', 'count': 1,  'price': 653 }, 
  { 'color': 'Красный',   'count': 67, 'price': 33  },  
  { 'color': 'Зелёный',   'count': 23, 'price': 457 }, 
  { 'color': 'Синий',     'count': 12, 'price': 39  },
  { 'color': 'Желтый',    'count': 50, 'price': 300 }
];

console.log(array.slice(1, 4).filter(item => item.count > 5).map(item => item.price));