Вы пытаетесь фильтровать один, используя другой, но я думаю, что вам нужно применять фильтры отдельно. Причина, по которой ваш код возвращает полный массив, в том, что только массив тестов заключается в том, что ваш вложенный фильтр по крайней мере возвратит пустой массив []
, а при сравнении с оператором ||
вам всегда будет что-то возвращено.
Я не знаю точный сценарий, по которому вы идете, но если вы хотите объединить записи ITest
и IQuestion
(хотя и не рекомендуется) в один массив, то это будет работать с использованием деструктуризации массива.
Я удалил включения, так как они не выглядели так, как будто они вам могут понадобиться, вы можете добавить их, если сравниваете частичные строки.
examBank = [
...this.props.toggleExamBankState.tests.filter(
(test: ITest) => test.companyPN === <value>
),
...this.props.toggleExamBankState.question.filter(
(question: IQuestion) => questions.companyPN === <value>
)
]
const Questions = [
{ companyPN: "250000" },
{ companyPN: "250003" },
{ companyPN: "251001" }
]
const Tests = [
{ companyPN: "250001" },
{ companyPN: "250002" },
{ companyPN: "251001" }
]
const examBank = [
...Tests.filter(
(test) => test.companyPN === "250001"
),
...Questions.filter(
(question) => question.companyPN === "250000"
)
]
console.log(examBank)