I personally prefer `for-of` because it allows flow control statements like `return`, `break` or `continue` in the body, something which isn't possible in a function like `forEach`. See https://github.com/github/eslint-plugin-github/blob/main/docs/rules/array-foreach.md#rule-details for a long explanation that goes into other topics as well.