Конечно. У меня есть достаточно сложная форма заполнения резюме сотрудниками нашей компании. Там может быть не один десяток полей. Когда пользователь производит малейшие манипуляции с формой, то должен выставиться признак модификации (булевский), который визуально превращается в знак (*) в интерфейсе. Я слежу за изменениями с помощью angular $scope.$watchGroup (https://docs.angularjs.org/api/ng/type/$rootScope.Scope) и в него записываю поля, за которыми нужно следить. Количество полей заранее не известно. Вот тут-то и нужен фильтр. Т.к. могут произойти не только изменения в полях ввода, но и ранжирования в массивах данных. Если не пользоваться angular, то нужно вешать самые разные обработки событий на интерфейс. По мне так angular в этом плане хорошо справляется с этой работой.
Ну и вообще, как фундаментальная задачка просто интересна. Я сделал решение, вроде даже простое. Но хочется узнать, нет изобрёл ли я велосипед?
updated, исходя из вашего комментария (который стоит вынести в описание вопроса) вам нужно это все делать на основе ngModel и $touched/$dirty свойств инпутов. Нет?
"$touched/$dirty свойств инпутов": Это не совсем работает, потому что некоторые свойства объекта не имеют отношения к вводу непосредственно. Например, последовательность из организаций, в которых работал пользователь представляет собой массив, поэтому их порядок никак не влияет на сами поля ввода, но изменения порядка уже есть изменения, которые так же надо поймать. Глянул lodash, я правильно понял, что вы имели в виду difference? но там разница только между элементами массива. Он умеет делать что-то с json?
P.S. если есть merge, почему бы не хотеть иметь filter? Это я к тому, что не хотел бы усложнять исходный вопрос. Согласен, вопрос странный, я и сам не сразу его сформулировал для себя.