Skip to content

Latest commit

 

History

History

array-order-by

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

just-order-by

Part of a library of zero-dependency npm modules that do just do one thing. Guilt-free utilities for every occasion.

🍦 Try it

npm install just-order-by
yarn add just-order-by

Produces a new array, sorted in given order

import orderBy from "just-order-by";

orderBy([10, 1, 5, 20, 15, 35, 30, 6, 8]); // [1, 5, 6, 8, 10, 15, 20, 30, 35]

orderBy(
  [
    { user: "fabio", details: { city: "Milan", age: 34 } },
    { user: "max", details: { city: "Munich", age: 29 } },
    { user: "zacarias", details: { city: "Sao Paulo", age: 44 } },
    { user: "robert", details: { city: "Manchester", age: 28 } },
    { user: "max", details: { city: "Zurich", age: 38 } },
  ],
  [
    {
      property(v) {
        return v.details.age;
      },
    },
  ]
);

/*
[
  {user: "robert", age: 28},
  {user: "max", age: 29},
  {user: "fabio", age: 34},
  {user: "klaus", age: 38},
  {user: "zacarias", age: 44},
]
*/

orderBy(
  [
    {user: "fabio", age: 34},
    {user: "max", age: 29},
    {user: "zacarias", age: 44},
    {user: "robert", age: 28},
    {user: "klaus", age: 38},
  ],
  [
    {
      property: "user",
    },
  ]
);

/*
[
  {user: "fabio", age: 34},
  {user: "klaus", age: 38},
  {user: "max", age: 29},
  {user: "robert", age: 28},
  {user: "zacarias", age: 44},
]
*/

orderBy(
  [
    { user: "fabio", age: 34 },
    { user: "max", age: 29 },
    { user: "zacarias", age: 44 },
    { user: "moris", age: 28 },
    { user: "max", age: 38 },
  ],
  [
    {
      property: "user",
      order: "desc",
    },
    {
      property(v) {
        return v.age;
      },
    },
  ]
);

/*
[
  {
    user: "zacarias",
    age: 44
  },
  {
    user: "moris",
    age: 28
  },
  {
    user: "max",
    age: 29
  },
  {
    user: "max",
    age: 38
  },
  {
    user: "fabio",
    age: 34
  }
]
*/