ensure-array
v1.0.0
Published
Ensure that an object is an array. Moves error checking out of your code.
Downloads
129,089
Readme
ensure-array
Simple convenience function which ensures that you are dealing with an array and you can eliminate noise from your code.
For Example:
var array = require('ensure-array');
function foo(bar) {
array(bar).forEach(function (x) {
//do something with each item
});
}
Instead of doing something like this:
function foo(bar) {
if (bar === undefined) return;
if (bar === null) return;
if (!Array.isArray(bar)) bar = [bar];
bar.forEach(function (x) {
//do something with each item
});
}
Description
It gets rid of the noise and coerces what is provided into an array, so you do not have to litter your code with a bunch of extraneous checks.
Here is the logic behind the function:
- if nothing passed to the function return empty array []
- if single argument passed is undefined or null return empty array []
- if single argument passed is already an array, return it unchanged
- otherwise return array containing all of the arguments
Here is the actual code which makes it happen
module.exports = function array(a, b, n) {
if (arguments.length === 0) return []; //no args, ret []
if (arguments.length === 1) { //single argument
if (a === undefined || a === null) return []; // undefined or null, ret []
if (Array.isArray(a)) return a; // isArray, return it
}
return Array.prototype.slice.call(arguments); //return array with copy of all arguments
};
Installation
npm install ensure-array
Usage
var array = require('ensure-array'); // get handle to the function
var foo = array(whatever); // foo will now safely be an array
Status
- 2017-11-02 - 1.0.0 - Modernized by @Zertz
- 2011-12-08 - 0.0.4 - Update tapr / tap versions
- 2011-12-01 - 0.0.3 - Updated to support any version of Node.js
License
Contributors
- Author: Jeff Barczewski (@jeffbski)
- Modernized on 2017-11-02 by Pier-Luc Gendreau (@Zertz)
Contributing
- Source code repository: http://github.com/jeffbski/ensure-array
- Ideas and pull requests are encouraged - http://github.com/jeffbski/ensure-array/issues
- You may contact me at @jeffbski or through github at http://github.com/jeffbski