type-reverse
🦄 Lightweight reverse utility around strings, arrays, numbers and more.
Install
$ npm install --save type-reverse
Usage
const reverse =
or...
API
reverse( input[, options][, callback] )
Params
input
{String|Number|Array|Set}options
{?Object}callback
{?Function}returns
{*}
//=> azzip
Works with numbers too.
//=> 4321
Reversing arrays...
When JavaScript's Array#reverse method is used, the original array is mutated, as in, the indexes of the elements are changed. On the other hand, this utility adopts the non-destructive array reversal method, which means the reverse()
function doesn't mutate the array; it just returns the reversed array and still maintains the indexes of the elements in the original array.
native reverse...
const arr = 1 2 3arr //=> [3, 2, 1]
Oops, we lost the indexes of elements in the initial array...
console //=> [3, 2, 1]
vs...
🦄 to the rescue...
const arr = 1 2 3 //=> [3, 2, 1]
Yay! arr
is not mutated. The indexes of its elements are still maintained...
console //=> [1, 2, 3]
Sets
If you've been wondering how to reverse Sets in JavaScript, here's it! The core reverse
function can take in a Set
as the input and then return the reversed Set
...
const set = 5 4 3 4 5 //=> Set { 3, 4, 5 }
options
options
is the second parameter to the function call and it is an object with two available properties. It can also take in a falsy value which would implicity get converted to an empty object.
invert: {String}
This property defaults to index
and applies to strings and numbers only.
-
index
- interchanges the indexes of characters in the input...//=> 54321//=> snrocinu ...fo -
sign
- inverts the sign in a number...//=> -1234 -
word
- swaps the location of words in a string...//=> unicorns of...
preserveZeros: {Boolean}
This property defaults to true
. It specifies whether to enforce preceding zeros in the result of a number that contains trailing zeros. See #3 for more info. Note that the result gets converted to a string. Disabling it would look like this...
//=> 42
callback: {Function}
The callback takes in a function with two optional parameters that represent input
and result
respectively.
input
- the initial input that was passed into the functionresult
- the output from reversing the input
const text = 'dog' //=> dog was changed to god
Limits
Did you just try to reverse a reaally huge number? Unfortunately, this utility doesn't support very large numbers. Trying to do so with this utility would throw a TypeError.
Author
Olaolu Olawuyi
License
MIT © Olaolu Olawuyi