Я работаю в проекте Angular 9 (Typescript).
У меня есть массив строк. У меня также есть массив пользовательского типа.
Как мне отфильтровать массив пользовательского типа, чтобы включить только те, чье свойство соответствует одной из строк в массиве строк. Вот некоторый код, чтобы помочь объяснить:
//I declare a custom type
export interface CustomType {
id: string;
name: string;
}
//I declare my arrays
customTypesArr: CustomType[] = [
{id: "000", name: "name 1"},
{id: "001", name: "name 2"},
{id: "002", name: "name 3"}
];
customTypesNamesArr: string[] = ["name 3", "name 1"];
Теперь я хочу создать массив из customTypesArr
, который включает только те элементы, свойство name которых совпадает с любой строкой в customTypesNamesArr
. Конечный результат будет следующим:
myNewCustomTypesArr: CustomType[] = [
{id: "000", name: "name 1"},
{id: "002", name: "name 3"}
];
Я думаю, что это будет что-то вроде этого, но я не могу этого добиться:
customTypesArr.filter(item =>
customTypesNamesArr.forEach(name => {
if (name == item.name) {
return item;
}
})
);
Я действительно не конечно, если я должен использовать forEach()
в этом сценарии ...
Любая помощь будет оценена. Спасибо.