Skip to content

๐Ÿƒ Scrambles (rearranges randomly) Strings and Arrays. ๐ŸŽ‹

License

Notifications You must be signed in to change notification settings

igorskyflyer/npm-scramble

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

24 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ScRaMbLe


๐Ÿƒ Scrambles (rearranges randomly) Strings and Arrays. ๐ŸŽ‹



๐Ÿ’– Support further development

I work hard for every project, including this one
and your support means a lot to me!

Consider buying me a coffee. โ˜•
Thank you for supporting my efforts! ๐Ÿ™๐Ÿ˜Š


Donate to igorskyflyer

@igorskyflyer




๐Ÿ“ƒ Table of contents


๐Ÿค– Features

  • ๐ŸซŽ reorders elements randomly
  • ๐Ÿ” works for strings and arrays
  • ๐Ÿฒ uses Fisher-Yates algorithm

๐Ÿ•ต๐Ÿผ Usage

Install it by executing:

npm i '@igor.dvlpr/scramble'

๐Ÿคน๐Ÿผ API

scrambleString(input: string, options?: IStringOptions): string

Scrambles the characters of each word in a given string.

input - The string to be scrambled.


Note

Since Fisher-Yates algorithm is used for scrambling, a length of > 3 is needed for a word to be able to get scrambled.


options - Options for scrambling, optional.


options are defined via an interface IStringOptions:

interface IStringOptions {
  trimWhitespace?: boolean
}

trimWhitespace, if true all whitespace is removed from the input string prior to scrambling its contents.


Returns the scrambled string.

Will throw an error if the input is not a string.


scrambleArray<ArrayType>(input: ArrayType[]): ArrayType[]

Scrambles the elements of an array.

input - The array to be scrambled.


Returns the scrambled array.

Will throw an error if the input is not an array.


โœจ Examples

example.mts

import { scrambleString, scrambleArray } from '@igor.dvlpr/scramble'

// these are just sample outputs
// since each invocation reorders
// elements randomly

console.log(scrambleString(
  'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'
)) // returns 'Leorm isupm dloor sit aetm, ccotnsueetr asdincipig eitl.'

console.log(scrambleString(
  'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', { trimWhitespace: true }
)) // returns 'Lpetssgerodcsctcmuaunelrteiisoomirlait,toindmipe.'

console.log(scrambleArray([1, 2, 3, 4, 5, 6, 7, 8])) // [5, 7, 1, 4, 2, 8, 3, 6]

๐Ÿ“ Changelog

๐Ÿ“‘ The changelog is available here: CHANGELOG.md.


๐Ÿชช License

Licensed under the MIT license which is available here, MIT license.


๐Ÿงฌ Related

@igor.dvlpr/uarray

๐ŸŽ‰ Provides UArray, an Array type that supports negative indices/indexes, just wrap your regular JavaScript array with UArray() and you are all set! ๐Ÿ™Œ


@igor.dvlpr/magic-string

๐Ÿงต An expressive and chainable library for advanced string manipulations. Supports appending, prepending, trimming, quoting, and path formatting with customizable whitespace handling. Makes advanced String manipulations a piece of cake. ๐Ÿฆฅ


@igor.dvlpr/strip-html

๐Ÿฅž Removes HTML code from the given string. Can even extract text-only from the given an HTML string. โœจ


@igor.dvlpr/extendable-string

๐Ÿฆ€ ExtendableString allows you to create strings on steroids that have custom transformations applied to them, unlike common, plain strings. ๐Ÿช€


@igor.dvlpr/duoscribi

โœ’ DรบรถScrรญbรฎ allows you to convert letters with diacritics to regular letters. ๐Ÿค“


๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป Author

Created by Igor Dimitrijeviฤ‡ (@igorskyflyer).