TypeScript Array.filter пустой возврат - PullRequest
0 голосов
/ 27 мая 2020

Описание проблемы

У меня проблема с массивом объектов, из которого я хотел бы получить массив подобъектов на основе свойства объекта. Но через Array.filter (lambda {}) все, что я получаю, это пустой список.

Объект выглядит примерно так:

export interface objectType1 {
   someName: number;
   someOtherName: string;
}

export interface ObjectType2 {
   name: string;
   other: string;
   ObjectType1: [];
}

Метод получения subArray:

private getSubArray(toDivied: ObjectType2[], propertyValue: string){
   let list: ObjectType2[] = toDivied.filter((row:ObjectType2) => {
     row.name === propertyValue
   });

   return list;
}

Анализ

А именно, были сделаны две вещи, гарантирующие, что сравнение фильтров работает и данные «соответствуют ожиданиям».

Точки прерывания в коде Visual Studio

Через точки останова при сравнении возврата и фильтра Я проверил, существует ли значение свойства (по условиям точки останова) и что возвращаемый «список» пуст.

Я хотел бы отметить, что Я использую линтер Typescript, который обычно выдает предупреждение о неправильных типах и вызовах неопределенных переменных и т.д., поэтому я совершенно уверен, что это не должно быть проблемой синтаксиса.

Протестировано через javascript, если оно работает в chrome консоль

enter image description here

1 Ответ

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

удалить фигурные скобки внутри функции обратного вызова

private getSubArray(toDivied: ObjectType2[], propertyValue: string){
   let list: ObjectType2[] = toDivied.filter((row:ObjectType2) => 
     row.name === propertyValue
   );

   return list;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...