Skip to content

hjp965329780/hange-random-weight

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hange-random-weight

Randomly pick an array item by weight callback

Usage

import random from 'hange-random-weight'
let items = [
    {
        name: 'Alex',
        weight: 1,
        count: 0
    },
    {
        name: 'Jonny',
        weight: 2,
        count: 0
    },
    {
        name: 'Tom',
        weight: 3,
        count: 0
    },
    {
        name: 'Lily',
        weight: 2,
        count: 0
    },
    {
        name: 'John',
        weight: 1,
        count: 0
    },
    {
        name: 'Rebecca',
        weight: 1,
        count: 0
    }
]
const ITERATION = 1000000
for (let i = 0; i < ITERATION; i++) {
    let w = random(items, i => i.weight)
    w.count++
}
for (let i = 0; i < items.length; i++) {
    console.log(`${items[i].name}: ${(items[i].count / ITERATION * 100).toFixed(2)}%`)
}

About

npm函数工具包

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published