Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Optimal way of determining array type [duplicate]

What is the best way to determining the object type is Array and why?.

var arr = [];

// Method #1
Array.isArray(arr);

// Method #2 
toString.call(arr) == "[object Array]"

// Method #3
arr.constructor == Array
like image 795
venkat7668 Avatar asked Dec 14 '25 06:12

venkat7668


1 Answers

All three methods can be used to test if variable is of Array type. However, there are some nuances. I will start from the last to first.

Method #3. Will not work if variable in question came from other winndow/frame. In this case, constructor will point the the different Array object and this check will return false. For the same reason, arr instanceof Array is not bullet-proof. So it's not 100% reliable.

Method #2. This is the method that has been traditionally used to verify array type. In fact, Array.isArray polyfill is based on this method. The only disadvantage is that it's cumbersome and verbose.

Method #1. Is the one from ES5 that should finally be used to test array type, no matter what realm array comes from (like iframe). This is is the best in the list.

like image 65
dfsq Avatar answered Dec 15 '25 19:12

dfsq



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!