weight-sort

1.3.1 • Public • Published

Order an array of objects by the key 'weight' (or another key)

Installation

Development

git clone https://github.com/plepe/weight-sort
cd weight-sort
composer install
npm install

Usage

NodeJS

var weightSort = require('weight-sort')

In-Browser

<script src='node_module/weight-sort/weightSort.js'>

PHP

include "path/to/weightSort.php";

SYNOPSIS

arr = weightSort(input, [options])

Sort the input array by the key 'weight' or as specified by the options. Returns the sorted array, the original array will not be changed.

If there are several entries with the same weight, the original order will remain.

Options: Can be either a string, which will define a different key or an object (array in PHP mode) with the following properties:

  • key: an alternative key by which to sort
  • reverse: boolean. if true, order from highest value to lowest.
  • compareFunction: Specifies a function that defines the sort order. The function is compatible with array.sort(). It will be passed two key values and should return -1, 0 or 1. See below for an example.

Example

var origArray = [
  { name: 'Alice',  weight: 62.5, height: 160 },
  { name: 'Bob',    weight: 77.0, height: 180 },
  { name: 'Charly', weight: 82.5, height: 180 },
  { name: 'Debby',  weight: 62.5, height: 165 },
  { name: 'Earl',   weight: 80.0, height: 185 }
]
 
/* Default: order elements by 'weight' */
var sortedArray = weightSort(origArray)
console.log(sortedArray)
// [
//    { name: 'Alice',  weight: 62.5, height: 160 },
//    { name: 'Debby',  weight: 62.5, height: 165 },
//    { name: 'Bob',    weight: 77.0, height: 180 },
//    { name: 'Earl',   weight: 80.0, height: 185 },
//    { name: 'Charly', weight: 82.5, height: 180 }
// ]
 
/* Optional: order elements by 'height' */
var sortedArray = weightSort(origArray, 'height')
console.log(sortedArray)
// [
//    { name: 'Alice',  weight: 62.5, height: 160 },
//    { name: 'Debby',  weight: 62.5, height: 165 },
//    { name: 'Bob',    weight: 77.0, height: 180 },
//    { name: 'Charly', weight: 82.5, height: 180 },
//    { name: 'Earl',   weight: 80.0, height: 185 }
// ]
 
/* Optional: alternative compareFunction (closest height to '179') */
var sortedArray = weightSort(origArray, {
      key: 'height',
      compareFunction: function (a, b) {
        return Math.abs(- 179) < Math.abs(- 179) ? -1 : 1
      }
})
console.log(sortedArray)
// [
//    { name: 'Bob',    weight: 77.0, height: 180 },
//    { name: 'Charly', weight: 82.5, height: 180 },
//    { name: 'Earl',   weight: 80.0, height: 185 }
//    { name: 'Debby',  weight: 62.5, height: 165 },
//    { name: 'Alice',  weight: 62.5, height: 160 },
// ]
 

Readme

Keywords

none

Package Sidebar

Install

npm i weight-sort

Weekly Downloads

136

Version

1.3.1

License

MIT

Unpacked Size

3.94 MB

Total Files

865

Last publish

Collaborators

  • plepe