How can I check if a value is an array in JavaScript?
Davide S
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:
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:
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:
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.