Для поиска всех записей в массиве объектов по массиву в TypeScript, вы можете использовать метод filter()
в сочетании с методом includes()
для проверки вхождения элемента массива в массив объектов.
Вот пример кода, демонстрирующий эту идиому:
interface MyObject { id: number; name: string; age: number; } const array: MyObject[] = [ { id: 1, name: "John", age: 25 }, { id: 2, name: "Jane", age: 30 }, { id: 3, name: "Bob", age: 35 }, { id: 4, name: "Alice", age: 40 } ]; const idsToFind: number[] = [2, 4]; const filteredArray: MyObject[] = array.filter(obj => idsToFind.includes(obj.id)); console.log(filteredArray);
В этом примере у нас есть массив array
, который содержит объекты типа MyObject
. Мы также имеем массив idsToFind
, в котором содержатся идентификаторы объектов, которые мы хотим найти.
Мы используем метод filter()
для фильтрации массива array
. Внутри функции обратного вызова мы проверяем, содержится ли obj.id
в массиве idsToFind
с помощью метода includes()
. Если это так, то объект будет добавлен в результат фильтрации.
В результате, массив filteredArray
будет содержать только те объекты, чьи идентификаторы найдены в массиве idsToFind
. В нашем примере, результат будет:
[ { id: 2, name: "Jane", age: 30 }, { id: 4, name: "Alice", age: 40 } ]
Таким образом, используя метод filter()
с методом includes()
, вы можете эффективно найти все записи в массиве объектов по массиву в TypeScript.