あまり見ないけどjavascriptのfor..in文ってのがあるよ

配列とマップでは、こんな感じで、for..in文が使えます。
keyやindexに相応するものがループで回されることを知らないと使いづらいですね。

var obj = {
  "key1": "value1"
  "key2": "value2"
};

for (key in obj){
  console.log(obj("key: " + key + " value: " + obj[key]);
}

var arr = ["cat", "dog"];

for (i in arr){
  console.log(obj("index: " + i + " value: " + arr[i]);
}