个人站推荐阅读功能看起来有点呆板,写个数组乱序给列表带来点可控的新鲜感。支持多次乱序、Seed和自定义随机数生成器。
代码在
github.com/imp8468/shufflefy
有Bug修,有需求回,MIT协议请随意使用:
www.npmjs.com/package/shufflefy
使用方法
安装之:
npm install shufflefy
Require之:
const shufflefy = require('shufflefy');
传入源数组,返回乱序数组。数组成员允许各种类型,请参见example.js。乱序不会影响源数组
const numberArr = [1, 2, 3, 4, 5, 6, 7];
console.log(shufflefy(numberArr));
参数列表:
shufflefy(input_arr[, iteration[, starting_seed[, randomizer]]])
input_arr - 源数组,array类型
iteration - 乱序的次数,number类型,可选。可以理解为“洗牌”的次数。默认值:1
starting_seed - 初始seed,number类型,可选。控制伪随机数生成器,进而决定输出的乱序数组。每对儿seed和iteration会保证稳定的输出。默认值:node的纳秒时钟
randomizer - 随机数生成器,function类型,可选。接受一个number类型的seed,期望返回 [0, 1),样例参见example.js。默认值:基于经典3元组(9301, 49297, 233280)的实现
测试:
npm test
样例:
node example.js
跑分:
node benchmark.js
License
MIT
谢