isArrayLike = function isArrayLike(val) {
  return val != null && (isArray(val) || (val !== 'function' && isNumber(val.length)));
}
Tests if a value is array-like. Array-like means the value is not a function and has a numeric
`.length` property.

@name isArrayLike
@api private
@param {*} val
@return {boolean}