ECMAScript proposal "Change Array by copy" by Robin Ricard and Ashley Claymore has been merge into ECMAScript standard. This proposal brings a lot of new toys, one of which is new array method: toSorted().
The toSorted() method is similar to sort
// Functionless
toSorted()
// Arrow function
toSorted((a, b) => { /* … */ })
The only difference is that it does not change the original array, calling this method returns a changed copy of the original array.
sort()
const arr = [3, 4, 2, 5, 1];
console.log(arr.sort())
// [1, 2, 3, 4, 5] Returns a reference to original array, now sorted
console.log(arr)
// [1, 2, 3, 4, 5] The original array is mutated
toSorted()
const arr = [3, 4, 2, 5, 1];
console.log(arr.toSorted())
// [1, 2, 3, 4, 5] Returns a new copy of arr that is sorted
console.log(arr)
// [3, 4, 2, 5, 1] The original array is not affected
For more information, check out the following resources:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toSorted
Top comments (0)