GitHub - WestinSchepper/rankr: a simple multi-criteria decision analysis (MCDA) library written in JavaScript.
Rankr is a simple multi-criteria decision analysis (MCDA) library written in JavaScript.
⚠ Warning Please keep in mind this project is still in initial development as defined by semver 2.0.0 spec item 4:
import Rankr from 'rankr'
const Rankr = require('rankr');
// 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 } } // ]