Вы можете отфильтровать массив, взяв значение шаблона, используя оператор остатка и длину шаблона в качестве индекса.
const
filterByPattern = (array, pattern) => array.filter((_, index) =>
pattern[index % pattern.length]);
console.log(filterByPattern([0, 7, 5, 4, 1, 3, 5], [0, 1, 0, 0]));
Мутантный подход с сохранением массива.
const
filterByPattern = (array, pattern) => {
let index = array.length;
while (index--)
if (!pattern[index % pattern.length])
array.splice(index, 1);
return array;
};
console.log(filterByPattern([0, 7, 5, 4, 1, 3, 5], [0, 1, 0, 0]));