z-shuffle
v1.0.1
Published
A tiny shuffle for array/string of javascript
Downloads
40
Maintainers
Readme
A tiny 📦 , fast 🚀 shuffle of javascript implement for array or string.
[English / 中文]
✨ Features
- 🚀 Run fast (1.5m ops/s for array of length 50 and 500k ops/s for string of length 62)
- 🌕 Support array or string
- 🕺🏻 Stable even distribution
- 📦 Tiny and tree shaking support
- 🌎 Support web, Node and service worker with esm, cjs amd umd
🎬 Quick Start
Install
npm i z-shuffle
Usage
import shuffle from 'z-shuffle';
console.log(shuffle(new Array(10).fill(null).map((v, i) => i)));
// [5, 3, 0, 1, 6, 9, 2, 4, 8, 7]
😼 Playground
🎨 Options
Interface
declare function shuffle(
target: string,
option?: {
fix?: true;
}
): string;
declare function shuffle<T = any>(
target: T[],
option?: {
pure?: boolean;
}
): T[];
Option
fix
for string shuffle
For string shuffle, use fix
to fix split for some special unicode char like 📦 🚀
.
But if your string have some more special char like 👩🏾🔧
, you should use some lib to transform the string to an array
before shuffle.
pure
for array shuffle
By default, shuffle will clone an array for do shuffle, but if you wan't this, just set pure
to false
.
📊 Distribution
This is a chart about do shuffle 100000 times for an array from A ~ P (16 letters for better display). The x axis means the index of element in the array, the y axis means how much times the element appear to the index.
All elements's appear count to each index are around 6250 (100000/16), which means they are even distribution.