diff --git a/README.md b/README.md index 47fc634b2..bc8036fca 100644 --- a/README.md +++ b/README.md @@ -2205,7 +2205,7 @@ If no orders array is passed it sort by 'asc' by default. ```js const orderBy = (arr, props, orders) => - arr.sort((a, b) => + [...arr].sort((a, b) => props.reduce((acc, prop, i) => { if (acc === 0) { const [p1, p2] = orders && orders[i] === 'desc' ? [b[prop], a[prop]] : [a[prop], b[prop]]; @@ -2223,8 +2223,8 @@ const users = [ { name: 'fred', age: 40 }, { name: 'barney', age: 34 } ]; -orderby(users, ['name', 'age'], ['asc', 'desc']); // [{name: 'barney', age: 36}, {name: 'barney', age: 34}, {name: 'fred', age: 48}, {name: 'fred', age: 40}] -orderby(users, ['name', 'age']); // [{name: 'barney', age: 34}, {name: 'barney', age: 36}, {name: 'fred', age: 40}, {name: 'fred', age: 48}] +orderBy(users, ['name', 'age'], ['asc', 'desc']); // [{name: 'barney', age: 36}, {name: 'barney', age: 34}, {name: 'fred', age: 48}, {name: 'fred', age: 40}] +orderBy(users, ['name', 'age']); // [{name: 'barney', age: 34}, {name: 'barney', age: 36}, {name: 'fred', age: 40}, {name: 'fred', age: 48}] ``` [⬆ back to top](#table-of-contents) diff --git a/docs/index.html b/docs/index.html index 7d25657fd..dbc3d06cd 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1356,7 +1356,7 @@ cleanObj(testObj, ['a'], 'children'); // { a: 1, children : { a: 1}}

Uses a custom implementation of sort, that reduces the props array argument with a default value of 0, it uses destructuring to swap the properties position depending on the order passed. If no orders array is passed it sort by 'asc' by default.

const orderBy = (arr, props, orders) =>
-  arr.sort((a, b) =>
+  [...arr].sort((a, b) =>
     props.reduce((acc, prop, i) => {
       if (acc === 0) {
         const [p1, p2] = orders && orders[i] === 'desc' ? [b[prop], a[prop]] : [a[prop], b[prop]];
@@ -1372,8 +1372,8 @@ If no orders array is passed it sort by 'asc' by default.

{ name: 'fred', age: 40 }, { name: 'barney', age: 34 } ]; -orderby(users, ['name', 'age'], ['asc', 'desc']); // [{name: 'barney', age: 36}, {name: 'barney', age: 34}, {name: 'fred', age: 48}, {name: 'fred', age: 40}] -orderby(users, ['name', 'age']); // [{name: 'barney', age: 34}, {name: 'barney', age: 36}, {name: 'fred', age: 40}, {name: 'fred', age: 48}] +orderBy(users, ['name', 'age'], ['asc', 'desc']); // [{name: 'barney', age: 36}, {name: 'barney', age: 34}, {name: 'fred', age: 48}, {name: 'fred', age: 40}] +orderBy(users, ['name', 'age']); // [{name: 'barney', age: 34}, {name: 'barney', age: 36}, {name: 'fred', age: 40}, {name: 'fred', age: 48}]

select

Retrieve a property that indicated by the selector from an object.