Как исправить findIndex в angular - PullRequest
0 голосов
/ 27 мая 2020
DATA = {
 code: 'no1',
 name: 'Room 1',
 room: {
  id: 'num1',
  class: 'school 1'
 }
};

LIST = [{
    code: 'no1',
    name: 'Room 1',
    room: {
        id: 'num1',
        class: 'school 1'
    }
}, {
    code: 'no2',
    name: 'Room 2',
    room: {
        id: 'num3',
        class: 'school 2'
    }
}, {
    code: 'no3',
    name: 'Room 3',
    room: {
        id: 'num3',
        class: 'school 3'
    }
}]

LIST.filter((x: any) => DATA.room.findIndex(y => y['id'] === x['id']) > -1);

Как исправить data.room.findIndex is not a function?

У меня есть СПИСОК, в котором будут перечислены все данные и ДАННЫЕ, которые являются текущими выбранными данными. Я пытаюсь отфильтровать данные, равные DATA.

1 Ответ

2 голосов
/ 27 мая 2020

Ваш DATA не должен быть массивом, так как он должен содержать только один выбранный элемент за раз, поскольку множественный выбор не упоминается в вашем вопросе. В случае, если вы намереваетесь сохранить «DATA» в виде массива из одного объекта, приведенный ниже фрагмент кода может помочь вам отфильтровать выбранные данные из «LIST»

var DATA = [{
 code: 'no1',
 name: 'Room 1',
 room: {
  id: 'num1',
  class: 'school 1'
 }
}];

var LIST = [{
    code: 'no1',
    name: 'Room 1',
    room: {
        id: 'num1',
        class: 'school 1'
    }
}, {
    code: 'no2',
    name: 'Room 2',
    room: {
        id: 'num3',
        class: 'school 2'
    }
}, {
    code: 'no3',
    name: 'Room 3',
    room: {
        id: 'num3',
        class: 'school 3'
    }
}];

var filterData = LIST.filter(x => DATA[0].room['id'] === x.room['id']);

console.log(JSON.stringify(filterData))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...