UNPKG

eris-keys

Version:

a JavaScript client library for eris-keys

38 lines (35 loc) 1.13 kB
var _curry1 = require('./internal/_curry1'); var _isArray = require('./internal/_isArray'); var _isString = require('./internal/_isString'); /** * Tests whether or not an object is similar to an array. * * @func * @memberOf R * @since v0.5.0 * @category Type * @category List * @sig * -> Boolean * @param {*} x The object to test. * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise. * @deprecated since v0.23.0 * @example * * R.isArrayLike([]); //=> true * R.isArrayLike(true); //=> false * R.isArrayLike({}); //=> false * R.isArrayLike({length: 10}); //=> false * R.isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true */ module.exports = _curry1(function isArrayLike(x) { if (_isArray(x)) { return true; } if (!x) { return false; } if (typeof x !== 'object') { return false; } if (_isString(x)) { return false; } if (x.nodeType === 1) { return !!x.length; } if (x.length === 0) { return true; } if (x.length > 0) { return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1); } return false; });