Um loop foreach bacana em Javascript

É comum que eu encontre um código parecido com este:

var items = [1, 2, 3, 4, 5];
for(var i in items) {
var item = items[i];
// Do something with item
}

Uma abordagem mais funcional seria simplesmente fazer assim:

var items = [1, 2, 3, 4, 5];
items
.map(function(item) {
// Do something with item
});

Em muitos casos, acredito que esta é a melhor escolha. Mais curto, mais fácil de ler, etc.

No entanto, lembre-se de que em Javascript são tipos de dados primitivos (como inteiros, strings, etc.) referenciados usando chamada por cópia. Portanto, uma atribuição a um item dentro do loop não funcionaria. Por outro lado, se você estiver fazendo um loop sobre objetos, a chamada por referência será usada e as atribuições funcionariam perfeitamente.