Does Javascript filter preserve order?
Yes, the .filter()
method returns a new array, without the filtered elements in the same order as initially.
The order of the elements is one of the main feature of a array.
Yes. From the spec,
- Let selected be the result of calling the [[Call]] internal method of callbackfn with T as the this value and argument list containing kValue, k, and O.
If ToBoolean(selected) is true, then
- Call the [[DefineOwnProperty]] internal method of A with arguments ToString(to), Property Descriptor {[[Value]]: kValue, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: true}, and false.
- Increase to by 1.
So the items in the returned array have the same order than in the original one.