const arr = [1,2,3]
// Method 1
Array.isArray(arr) // true
// Method 2
console.log(arr instanceof Array) // true // but also note -
// arr instanceof Object is also true, so you can do this below
if(Array.isArray(arr) && arr instanceof Array) // actually Array.isArray is sufficient
Test if a variable is an Object
// This is tricky because array is an object, function is an object so it's difficult
// to find the actual object
// Problem
const arr = []
const fun = function(){}
const actualObj = {}
arr instanceof Object // true
fun instanceof Object // true
actualObj instanceof Object // true
// So the goal is actualObj must return true and everything else false
actualObj instanceof Object && !(actualObj instanceof Array) && !(typeof actualObj === 'function')