How can I check if a value is an array in JavaScript?
Davide S
davide s profile pic

In JavaScript, there are several ways to check if a value is an array. Here are a few commonly used approaches: 1. Using theArray.isArray() method: TheArray.isArray() method is the most straightforward and recommended way to check if a value is an array. It returnstrue if the provided value is an array andfalse otherwise. Here's an example:

1
2
3
4

const value = [1, 2, 3];
const isArray = Array.isArray(value);
console.log(isArray); // Output: true

In this example, theArray.isArray() method is used to check if thevalue is an array. It returnstrue sincevalue is an array. 2. Using theinstanceof operator: Theinstanceof operator can also be used to check if a value is an instance of theArray constructor. It returnstrue if the value is an array andfalse otherwise. Here's an example:

1
2
3
4

const value = [1, 2, 3];
const isArray = value instanceof Array;
console.log(isArray); // Output: true

In this example, theinstanceof operator checks ifvalue is an instance of theArray constructor, returningtrue sincevalue is an array. 3. Using theArray.prototype.isArray() polyfill: If you're targeting older browsers or environments that don't support theArray.isArray() method, you can use a polyfill to add support. Here's an example of a polyfill implementation:

1
2
3
4
5
6
7
8
9
10

if (!Array.isArray) {
  Array.isArray = function(value) {
    return Object.prototype.toString.call(value) === '[object Array]';
  };
}

const value = [1, 2, 3];
const isArray = Array.isArray(value);
console.log(isArray); // Output: true

In this example, the polyfill checks if theArray.isArray() method is available. If it's not, it defines a custom implementation that usesObject.prototype.toString.call(value) to check if the value's internal[[Class]] property matches'[object Array]'. 4. Using Array-like checks: If you want to check if a value is an array-like object (i.e., an object with alength property and numeric indices), you can use the following approach:

1
2
3
4
5
6
7
8

function isArrayLike(value) {
  return typeof value === 'object' && value !== null && typeof value.length === 'number';
}

const arrayLike = { 0: 'a', 1: 'b', 2: 'c', length: 3 };
const isLikeArray = isArrayLike(arrayLike);
console.log(isLikeArray); // Output: true

In this example, theisArrayLike function checks if thevalue is an object, notnull, and has alength property with a numeric value. It returnstrue if the conditions are met, indicating that the value is array-like. Choose the method that best fits your specific requirements. TheArray.isArray() method is generally recommended due to its simplicity and wide browser support.