Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including ensure-array with all npm packages installed. Try it out:

var ensureArray = require("ensure-array")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

ensure-array v1.0.0

Ensure that an object is an array. Moves error checking out of your code.


Simple convenience function which ensures that you are dealing with an array and you can eliminate noise from your code.

Build Status

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


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:

  1. if nothing passed to the function return empty array []
  2. if single argument passed is undefined or null return empty array []
  3. if single argument passed is already an array, return it unchanged
  4. 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;     //return array with copy of all arguments


  npm install ensure-array


  var array = require('ensure-array');  // get handle to the function
  var foo = array(whatever);               // foo will now safely be an array


  • 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



  • Author: Jeff Barczewski (@jeffbski)
  • Modernized on 2017-11-02 by Pier-Luc Gendreau (@Zertz)


  • Source code repository:
  • Ideas and pull requests are encouraged -
  • You may contact me at @jeffbski or through github at


RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free