JavaScript での書き方がぱっと思い浮かばなかったのでメモしておきます。
JavaScript
forEach ので 分割代入 を使うことで複数の引数を取得できる。
// Python の zip や Ruby の Array#zip に相当する関数を作る。
const zip = (array1, array2) => array1.map((_, i) => [array1[i], array2[i]]);
zip([101, 102, 103], ['ヒロ', '沙英', '乃莉']);
//=> [[101, "ヒロ"], [102, "沙英"], [103, "乃莉"]]
zip([101, 102, 103], ['ヒロ', '沙英', '乃莉'])
.forEach(([room, girl]) => console.log(`部屋 ${room} には${girl}が住んでいます。`));
部屋 101 にはヒロが住んでいます。
部屋 102 には沙英が住んでいます。
部屋 103 には乃莉が住んでいます。
ちなみに Python と Ruby では次のように書けます。
Python
>>> list(zip([101, 102, 103], ['ヒロ', '沙英', '乃莉']))
[(101, 'ヒロ'), (102, '沙英'), (103, '乃莉')]
>>> for room, girl in zip([101, 102, 103], ['ヒロ', '沙英', '乃莉']):
... print(f'部屋 {room} には{girl}が住んでいます。')
...
部屋 101 にはヒロが住んでいます。
部屋 102 には沙英が住んでいます。
部屋 103 には乃莉が住んでいます。
Ruby
irb(main):001:0> [101, 102, 103].zip(['ヒロ', '沙英', '乃莉'])
=> [[101, "ヒロ"], [102, "沙英"], [103, "乃莉"]]
irb(main):002:0> [101, 102, 103].zip(['ヒロ', '沙英', '乃莉']) { |room, girl| puts("部屋 #{room} には#{girl}が住んでいます。") }
部屋 101 にはヒロが住んでいます。
部屋 102 には沙英が住んでいます。
部屋 103 には乃莉が住んでいます。