Array#filter without callback function

# Asen Bozhilov (13 years ago)

Array.prototype.filter could be used to convert sparse to dense array, e.g.

[1,,,,,2,,,,,3].filter(Boolean.bind(null, true)); //[1, 2, 3]

Would be pretty straightforward if built-in filter could be called without callback function and returns a dense array. I guess the engines will optimize that and library authors could gracefully iterate over index properties of arrays without checking for existance.

# Andrea Giammarchi (13 years ago)

if it's about iterating you have forEach which does not iterate over non assigned indexes ... this looks like you want a new feature with an ES5 method as filter is so that you can use an ES3 for loop after ...

I mean, you have forEach, map, etc to iterate valid indexes, why would you need that?

# Andrea Giammarchi (13 years ago)

Asen, as mentioned what I meant is that I would sparse.filter(Object); once if that's about having a repeated iteration.

This let you avoid the Boolean.bind(null, true) if that was the concern but I have no idea about performances.

There are too many libraries to change in order to support this default behavior, I guess, that's why I think is not worth it.

br