JavascriptのObjectをeachしたい

Javascriptでオブジェクトをeachで回したい時に
array同様にforEach使おうとしたらダメだった

ダメなパターン

obj.forEach(function (v,i) {
  console.log(i, ':', v);
});

普通にforを使うパターン

for (var key in obj) {
  if (obj.hasOwnProperty(key)) {
    console.log(key, ':', obj[key]);
  }
}

モダンぽい書き方

Object.keys(obj).forEach(function (key) {
  console.log(key, ':', obj[key]);
});