How can I check the object or variable is traversable in Javascript or jQuery?
An object or a variable which is traversable must works in for each like object.forEach()
and $.each(object, callback)
in jQuery.
Actually I want to validate it then use it in for each loops.
Update:
The solution which I looking for is something like this:
if(is_traversable($var)) {
$var.forEach(function(value, key) {
console.log(value);
}
}
And you may give me an implementation of is_traversable()
function.
For arrays, use Array.isArray()
and for objects, you could first check not null
and typeof
is equal to 'object'
or 'function'
.
The wanted function for it:
var isTraversable = o => Array.isArray(o)
|| o !== null && ['function', 'object'].includes(typeof o);
console.log(isTraversable()); // false
console.log(isTraversable(undefined)); // false
console.log(isTraversable(null)); // false
console.log(isTraversable('')); // false
console.log(isTraversable(0)); // false
console.log(isTraversable('a')); // false
console.log(isTraversable(42)); // false
console.log(isTraversable(/./)); // false
console.log(isTraversable([])); // true
console.log(isTraversable([1])); // true
console.log(isTraversable({})); // true
console.log(isTraversable({ a: /./ })); // true
console.log(isTraversable(function () {})); // true
console.log(isTraversable(() => true)); // true
.as-console-wrapper { max-height: 100% !important; top: 0; }