I looked at the documentation and while looking at examples it looks like filter preserves order of the original list (though it returns a new one). Can I rely on that?
Ecmascript spec
MDN
Neither of these reference preserving order. Should I just assume I can't rely on preserved order?
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With