Helper functions for Javascript array, object, and string
Perform commonly needed operations of array, object and string using wink-helpers
. It is a part of wink — a growing family of high quality packages for Statistical Analysis, Natural Language Processing and Machine Learning in NodeJS.
Use npm to install:
npm install wink-helpers --save
// Load wink helpers
var helpers = require( 'wink-helpers' );
/* Use array helpers */
console.log( helpers.array.isArray( [] ) );
// -> true
var ppl = [ { name: 'aiden', age: 42 }, { name: 'olivia', age: 37 } ];
console.log( ppl.sort( helpers.array.ascendingOn( 'age' ) ) );
// -> [ { "name": "olivia", "age": 37 }, { "name": "aiden", "age": 42 } ]
console.log( helpers.array.product( [ [ 9, 8 ], [ 1, 2 ] ] ) );
// -> [ [ 9, 1 ], [ 9, 2 ], [ 8, 1 ], [ 8, 2 ] ]
console.log( helpers.array.shuffle( [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] ) );
// -> [ 3, 7, 8, 9, 6, 4, 2, 1, 10, 5 ]
// Note: output will change on every call!
/* Use object helpers */
console.log( helpers.object.isObject( {} ) );
// -> true
console.log( helpers.object.isObject( new Set() ) );
// -> false
console.log( helpers.object.table( { mobile: 33, chargers: 45, usb: 27 } ) );
// -> [ [ "mobile", 33 ], [ "chargers", 45 ], [ "usb", 27 ] ]
/* Use string helper */
console.log( helpers.string.normalize( 'Résumé' ) );
// -> 'resume'
The helper functions are classified into array, object, string and validate.
Tests if argument value
is a valid JS array; returns true
if it is, otherwise returns false
.
It is a set of handy compare functions for handling a variety of array sorting needs.
compareFunction | Description |
---|---|
ascending | Sorts elements in ascending order. |
descending | Sorts elements in descending order. |
ascendingOnKey | It works on array of arrays, where each element is in the [ key, value ] format. Sorts elements in ascending order on the key . |
descendingOnKey | Same as above, but sorts in descending order. |
ascendingOnValue | It works on array of arrays, where each element is in the [ key, value ] format. Sorts elements in ascending order on the value . |
descendingOnValue | Same as above, but sorts in descending order. |
ascendingOn( accessor1 [,accessor2 ] ) |
A higher order function that returns a compare function for the accessors — refers to a key whose value will be used to determine the sort order. Can be directly used as the compare function for sort. It works on array of arrays or objects. When both the accessors are supplied, the combination is treated as a composite key for sort. |
descendingOn( accessor1 [,accessor2 ] ) |
Same as above, but sorts in descending order. |
Plucks the values specified by the key
from each element of the array
of arrays or objects, and returns the resultant array. The default value of key
is 0. The number of elements to be plucked is defined by the limit
, whose default value is array.length
.
Returns the cartesian product of the arrays present inside the array
argument. For example, if the array
argument is [ [ 1, 2, 3 ], [ 4 ], [ 5, 6 ] ]
, then the return value will be:
[
[ 1, 4, 5 ],
[ 1, 4, 6 ],
[ 2, 4, 5 ],
[ 2, 4, 6 ],
[ 3, 4, 5 ],
[ 3, 4, 6 ]
]
Randomly shuffles the order of the elements in the input array using algorithm described in Chapter 3 on Random Numbers of "The Art of Computer Programming Volume II" by Donald E Knuth.
Tests if argument value
is a JS object; returns true
if it is, otherwise returns false
.
Returns keys of the obj
in an array
.
Returns the number of keys in the obj
.
Returns all the values from each key: value
pair in the obj
in form of an array.
Returns the frequency or count of every unique value from each key: value
pair in the obj
in form of an object.
Converts each key: value
pair in the obj
into an array of [ key, value ]
pairs. Note the returned value be an array of array. Second argument - f
is optional; it is a function, which is called with each value.
Normalizes the str
by converting it to lower case and stripping the diacritical marks (if any).
Alias for array.isArray()
.
Alias for object.isObject()
.
Tests if argument value
is a finite integer; returns true
if it is, otherwise returns false
.
Tests if argument value
is a finite number; returns true
if it is, otherwise returns false
.
If you spot a bug and the same has not yet been reported, raise a new issue or consider fixing it and sending a pull request.
wink-helpers is copyright 2017-18 GRAYPE Systems Private Limited.
It is licensed under the under the terms of the GNU Affero General Public License as published by the Free Software Foundation, version 3 of the License.