JSFiddle - React, Tailwind, and code Playground
HTML
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
JavaScript
var x = document.getElementsByClassName("test");
var y = x[0];
console.log(isArrayLike(x)); // returns false
console.log(typeof x.attributes == "undefined"); // returns true
console.log(isArrayLike(y)); // returns false
console.log(typeof y.attributes == "undefined"); // returns false
function isArrayLike(o) {
if (o && // o is not null, undefined, etc.
typeof o === "object" && // o is an object
isFinite(o.length) && // o.length is a finite number
o.length >= 0 && // o.length is non-negative
o.length===Math.floor(o.length) && // o.length is an integer
o.length < 4294967296) // o.length < 2^32
return true; // Then o is array-like
else
return false; // Otherwise it is not
}