{{alias}}( arr[, options] ) Shuffles elements of an array-like object. Parameters ---------- arr: ArrayLike Array-like object to shuffle. options: Object (optional) Options. options.copy: string (optional) String indicating whether to return a copy (`deep`,`shallow` or `none`). Default: `'shallow'`. Returns ------- out: ArrayLike Shuffled array-like object. Examples -------- > var data = [ 1, 2, 3 ]; > var out = {{alias}}( data ) e.g., [ 3, 1, 2 ] > out = {{alias}}( data, { 'copy': 'none' }); > var bool = ( data === out ) true {{alias}}.factory( [options] ) Returns a function to shuffle elements of array-like objects. Parameters ---------- options: Object (optional) Options. options.seed: integer (optional) Integer-valued seed. options.copy: string (optional) String indicating whether to return a copy (`deep`,`shallow` or `none`). Default: `'shallow'`. Returns ------- fcn: Function Shuffle function. Examples -------- > var myshuffle = {{alias}}.factory(); // Set a seed: > myshuffle = {{alias}}.factory({ 'seed': 239 }); > var arr = [ 0, 1, 2, 3, 4 ]; > var out = myshuffle( arr ) e.g., [ 3, 4, 1, 0, 2 ] // Use a different copy strategy: > myshuffle = {{alias}}.factory({ 'copy': 'none', 'seed': 867 }); // Created shuffle function mutates input array by default: > arr = [ 1, 2, 3, 4, 5, 6 ]; > out = myshuffle( arr ); > var bool = ( arr === out ) true // Default option can be overridden: > arr = [ 1, 2, 3, 4 ]; > out = myshuffle( arr, { 'copy': 'shallow' }); > bool = ( arr === out ) false See Also --------