weighted-sum

1.0.2 • Public • Published

weighted-sum

Weighted sum algorithm implementation used on Mealou (https://m.me/Mealoubot | https://www.mealou.co)

Algorithm Documentation:

Install

NPM

Build Status

$ npm install weighted-sum

Usage

Sorting three items by note and distance fields:

const weightSum = require('weighted-sum')
const data = [
  {
    id: 'item 1',
    note: 4,
    distance: 626
  },
  {
    id: 'item 2',
    note: 4,
    distance: 410
  },
  {
    id: 'item 3',
    note: 3,
    distance: 700
  }
]
 
const sortOptions = {
  includeScore: true,
  note: {
    weight: 0.4,
    sort: 'asc'
  },
  distance: {
    weight: 0.6,
    sort: 'desc'
  }
}
 
// Output: ['item 2', item 1', item 3]
const sortedItems = weightSum(data, sortOptions)

API

weightSum(data, sortOptions)

data

Type: Array

  • id field is mandatory
  • Sorting criterias must be numbers

sortedOptions

Type: Object

  • includeScore: whether or not include sorting score in result. Default is false
  • weight is mandatory
  • sum of all weight must equal 1
  • Default sort is asc

License

MIT © Dorian Camilleri

Readme

Keywords

none

Package Sidebar

Install

npm i weighted-sum

Weekly Downloads

2

Version

1.0.2

License

MIT

Last publish

Collaborators

  • dcamilleri