2.1.0 • Published 6 years ago
weighted-picker v2.1.0
weighted-picker
A library to pick a random item from weighted array.
install
npm i weighted-picker
usage
// nodejs:
import WeightedPicker from "weighted-picker";
// import WeightedPicker from "weighted-picker/nodejs"; // ES syntax
// browser(module):
// import WeightedPicker from "weighted-picker";
// import WeightedPicker from "weighted-picker/browser"; // ES module
// browser(script tag):
// <script src="weighted-picker/weighted-picker.min.js"></script>
const items = [
{ name: "a", weight: 1 },
{ name: "b", weight: 2 },
{ name: "c", weight: 3 },
{ name: "d", weight: 4 },
];
const picker = new WeightedPicker(items.length, index => items[index].weight);
let index = picker.pickOne();
index = picker.pickOne();
index = picker.pickOne();
or
import WeightedPicker from "weighted-picker";
const items = ["a", "b", "c", "d"];
const weights = [1, 2, 3, 4];
const picker = new WeightedPicker(items.length, index => weights[index]);
let index = picker.pickOne();
index = picker.pickOne();
index = picker.pickOne();
change logs
// v2
import WeightedPicker from "weighted-picker/nodejs";
import WeightedPicker from "weighted-picker/browser";
// v1
import { WeightedPicker } from "weighted-picker";