Если я правильно понимаю, что вам нужно, вам нужна функция, которая запоминает предыдущее переданное ей значение, и только при изменении с 0 на 1 возвращает 1. Этого можно достичь с помощью закрытия .
В основном функция «построитель» возвращает другую функцию, возвращенная функция имеет доступ к переменным, объявленным в функции «buider». Эти переменные сохраняют свое значение от одного вызова возвращаемой функции к другому.
function build(initial) {
let previous = initial;
return function(input) {
const output = previous === 0 && input === 1 ? 1 : 0;
previous = input;
return output;
}
}
const values = [0, 0, 0, 1, 0, 1, 1, 1, 0, 1];
const positiveFlank = build();
for (const value of values) {
const output = positiveFlank(value);
console.log(`Input ${value}`, `Output ${output}`);
}