Function returns the type of object
function objOrLis(obj) {
if (typeof obj == "object") {
poss = "object"
try {
for (let i of obj) {
poss = "list"
}
}
catch {
poss = "object"
}
return poss
}
else {
let c = typeof obj
return c
}
}
Use Array.isArray()
to identify arrays:
function objOrLis(obj) {
return Array.isArray(obj)
? 'list'
: typeof obj
}
console.log(objOrLis([]))
console.log(objOrLis({}))
console.log(objOrLis(1))
console.log(objOrLis('str'))
Object.prototype.toString gives different results
const array = [1,2,3];
const set = new Set(array);
const map = {a:1,b:2,c:3};
console.log(Object.prototype.toString.call(array));
console.log(Object.prototype.toString.call(set));
console.log(Object.prototype.toString.call(map));
An ES6 one liner to differentiate between an array and an object.
const objectOrList = (o) => (o instanceof Array ? "list" : (o instanceof Object ? "object" : typeof o))
const objectOrList = (o) => (o instanceof Array ? "list" : (o instanceof Object ? "object" : typeof o));
console.log(objectOrList([]));
console.log(objectOrList({}));
console.log(objectOrList(1));
console.log(objectOrList("string"));