Если мы говорим о рекомендациях, то я бы дал рекомендацию не применять hasOwnProperty, потому что скорее всего будет делаться какой-то хак либо это можно заменить на что другое
По поводу использования везде forEach, очень спорно, потому что я предпочитаю использовать for, а кто-то может предпочитать не использовать for, и это больше от вкуса зависит
Но с for у меня получается написать более понятный код, чем без него, поэтому и использую for
Тем более что можно логически отделять разные блоки, использовать break и continue, когда требуется