6.0.3 • Published 8 years ago
comparative-selection v6.0.3
Comparative selection algorithm plugin for d-pac platform
Based on NoMoreMarking's cj module.
Description
The algorithm accepts a queue (Array) of items, then:
- pseudo-randomizes the items list
- sorts the list by the number of comparisons each item has been featured in
- retains the first item as 'selected'
- retains the next valid item as 'opponent':
- either, the next item in the (shuffled) list when 'selected' has no previous comparisons.
- or, the next item in the (shuffled) list 'selected' hasn't been compared to yet.
- returns both items
Install
$ yarn add comparative-selectionAPI
Item
Type: Object
Properties
idstring ID of the item
Comparison
Type: Object
Properties
select
Simple comparative selection algorithm
Parameters
payloadObject Payload object containing the relevant valuespayload.itemsArray<Item> An array of Itemspayload.comparisonsArray<Comparison>? An array of Comparisons
Examples
const comparative = require('comparative-selection');
const pair = comparative.select([{id:"1"}, {id:"2"}, {id:"3"}, {id:"4"}]);
console.log('pair:', pair); // e.g.: {a: "2", b: "4"}const comparative = require('comparative-selection');
const pair = comparative.select([{id:"1"}, {id:"2"}, {id:"3"}, {id:"4"}], [{a:"2", b: "1"}]);
console.log('pair:', pair); // {a: "3", b: "4"}Returns Comparison the pair of item ID's to compare
Development
Testing
$ yarn testLinting
$ yarn lintLicense
GPL v3 © d-pac