Вывод определенных объектов из массива

98
21 января 2021, 11:10

Всем привет. У меня есть функция при нажатие на которую я хочу получать объекты из массива только первой категории. Она мне возвращает только один элемент. В чем ошибка?

takeCategory1() {
    this.categoryService.getCategory()
        .pipe(map((category): any => {
            for(let key of category){
                if(key.name.includes('Наименование услуги категории 1')){
                    return [key];
                }
            }
        }))
        .subscribe(category => {
          this.category = category
            console.log(category)
        })
  }

Вот как выглядит сам массив:

[
0: {id: 0, name: "Наименование услуги категории 1, строка 0"}
1: {id: 1, name: "Наименование услуги категории 1, строка 1"}
2: {id: 2, name: "Наименование услуги категории 1, строка 2"}
3: {id: 3, name: "Наименование услуги категории 1, строка 3"}
4: {id: 4, name: "Наименование услуги категории 1, строка 4"}
5: {id: 5, name: "Наименование услуги категории 1, строка 5"}
6: {id: 6, name: "Наименование услуги категории 1, строка 6"}
7: {id: 7, name: "Наименование услуги категории 1, строка 7"}
8: {id: 8, name: "Наименование услуги категории 1, строка 8"}
9: {id: 9, name: "Наименование услуги категории 1, строка 9"}
10: {id: 0, name: "Наименование услуги категории 2, строка 0"}
11: {id: 1, name: "Наименование услуги категории 2, строка 1"}
12: {id: 2, name: "Наименование услуги категории 2, строка 2"}
13: {id: 3, name: "Наименование услуги категории 2, строка 3"}
14: {id: 4, name: "Наименование услуги категории 2, строка 4"}
15: {id: 5, name: "Наименование услуги категории 2, строка 5"}
16: {id: 6, name: "Наименование услуги категории 2, строка 6"}
17: {id: 7, name: "Наименование услуги категории 2, строка 7"}
18: {id: 8, name: "Наименование услуги категории 2, строка 8"}
19: {id: 9, name: "Наименование услуги категории 2, строка 9"}
]
Answer 1

Я бы вам рекомендовал сделать какой-нибудь признак категории внутри, если имя внезапно изменится, то вам придется править код (что не есть хорошо), к примеру 19: {id: 9, name: "Наименование услуги категории 2, строка 9", category:1} и проверят по нему, и поскольку map является iterable (циклом если по простому) вы можете написать

map((category): any => { return any.category == 1 })

READ ALSO
Flex: 3 элемента 1 по центру остальные по краям

Flex: 3 элемента 1 по центру остальные по краям

Пытаюсь сделать верстку на флексах, есть три контейнера разной шириныДва должны быть по краям и один по центру

156
Дублирование последнего числа в ListBox

Дублирование последнего числа в ListBox

Мне нужно считать все числа из файла в бинарном режиме (мне принципиально важно именно в этом режиме считывать числа) и добавить в ListBoxПо непонятной...

130
Лягушки и их счастливые номера

Лягушки и их счастливые номера

Немножко про условие задачи : Дано N лягушек и бесконечное поле, в каждой лягушки есть свой счастливый порядковый номерЛягушки приходят по очереди...

120
Вывод текста в классе си++

Вывод текста в классе си++

Подскажите, пожалуйста, как вывести текст в классе

113