There is a foreach that works: .forEach(). And when you're not just iterating over an array but transforming it, you have map(), reduce() and filter().
Remember that the spec won't come out for a while, after a pile of additional development. Also remember that we have to live with it for a long time, so taking the time to get it right seems preferable.
A different way to put it is: "the best way to iterate over collections is still being discussed, because we want to get it right".
Also, for `Map`, how do you think `foreach` should work? Should the function be called with (a) the key, (b) the value, (c) an array with both the key and the value, (d) the key and the value as separate arguments?
Similarly, in the statement:
for(let x of some_map) { ... }
should `x` range over the keys, values, or key-value pairs of the map?
How hard would it be to agree on something like foreach, that, you know, actually works the way you think it should work.