Skip to content

a simple multi-criteria decision analysis (MCDA) library written in JavaScript.

License

Notifications You must be signed in to change notification settings

WestinSchepper/rankr

Repository files navigation

Rankr

Rankr is a simple multi-criteria decision analysis (MCDA) library written in JavaScript.

npm license

⚠ Warning Please keep in mind this project is still in initial development as defined by semver 2.0.0 spec item 4:

Major version zero (0.y.z) is for initial development. Anything MAY change at any time. The public API SHOULD NOT be considered stable.

Documentation

The Rankr docs are located at https://westinschepper.com/rankr:

Introduction

API Reference

Quick Start

Install with npm or yarn:

# npm
npm install rankr
# yarn
yarn add rankr

Use with Node.js, Browserify, or webpack:

import Rankr from 'rankr'
const Rankr = require('rankr');

Usage

I'm looking for new car. low price, high gas mileage, and a high safety rating are important to me.

// This is your data
const cars = [
  { make: 'Ford', model: 'Raptor', price: 45000, safetyRating: 5, mpg: 21 },
  { make: 'Audi', model: 'S3', price: 50000, safetyRating: 9, mpg: 29 },
  { make: 'BMW', model: 'M3', price: 60000, safetyRating: 6, mpg: 24 },
  { make: 'Audi', model: 'Q8RS', price: 70000, safetyRating: 10, mpg: 22 },
  { make: 'Mercedes', model: 'AMG', price: 110000, safetyRating: 3, mpg: 18 }
]

// The criterias (low price, high gas mileage, high safety rating)
const criterias = [
  { key: 'price', strategy: 'decreasing' },
  { key: 'mpg', strategy: 'increasing' },
  { key: 'safetyRating', strategy: 'increasing' },
]

Rankr(cars, criterias)
// [
//   { score: 0.9267399267399267, record: { make: "Audi", model: "S3", price: 50000, safetyRating: 9, mpg: 29 },
//   { score: 0.6596736596736597, record: { make: "Audi", model: "Q8RS", price: 70000, safetyRating: 10, mpg: 22 },
//   { score: 0.5810855810855811, record: { make: "BMW", model: "M3", price: 60000, safetyRating: 6, mpg: 24 },
//   { score: 0.5194805194805194, record: { make: "Ford", model: "Raptor", price: 45000, safetyRating: 5, mpg: 21 },
//   { score: 0, record: { make: "Mercedes", model: "AMG", price: 110000, safetyRating: 3, mpg: 18 } }
// ]