diff --git a/lodash.js b/lodash.js index a8088d31b..8d06a5770 100644 --- a/lodash.js +++ b/lodash.js @@ -1438,46 +1438,49 @@ * `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` * * The chainable wrapper methods are: - * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, - * `before`, `bind`, `bindAll`, `bindKey`, `chain`, `chunk`, `commit`, `compact`, - * `concat`, `conforms`, `conj`, `constant`, `countBy`, `create`, `curry`, - * `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, `difference`, - * `differenceBy`, `disj`, `drop`, `dropRight`, `dropRightWhile`, `dropWhile`, - * `fill`, `filter`, `flatten`, `flattenDeep`, `flip`, `flow`, `flowRight`, - * `forEach`, `forEachRight`, `forIn`, `forInRight`, `forOwn`, `forOwnRight`, - * `functions`, `groupBy`, `initial`, `intersection`, `intersectionBy`, - * `invert`, `invoke`, `iteratee`, `keyBy`, `keys`, `keysIn`, `map`, `mapKeys`, - * `mapValues`, `matches`, `matchesProperty`, `memoize`, `merge`, `mergeWith`, - * `method`, `methodOf`, `mixin`, `modArgs`, `modArgsSet', 'negate`, `nthArg`, - * `omit`, `omitBy`, `once`, `pairs`, `partial`, `partialRight`, `partition`, + * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, + * `at`, `before`, `bind`, `bindAll`, `bindKey`, `chain`, `chunk`, `commit`, + * `compact`, `concat`, `conforms`, `conj`, `constant`, `countBy`, `create`, + * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, + * `difference`, `differenceBy`, `differenceWith`, `disj`, `drop`, `dropRight`, + * `dropRightWhile`, `dropWhile`, `fill`, `filter`, `flatten`, `flattenDeep`, + * `flip`, `flow`, `flowRight`, `forEach`, `forEachRight`, `forIn`, `forInRight`, + * `forOwn`, `forOwnRight`, `functions`, `functionsIn`, `groupBy`, `initial`, + * `intersection`, `intersectionBy`, `intersectionWith`, invert`, `invoke`, + * `iteratee`, `keyBy`, `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, + * `matches`, `matchesProperty`, `memoize`, `merge`, `mergeWith`, `method`, + * `methodOf`, `mixin`, `modArgs`, `modArgsSet', `negate`, `nthArg`, `omit`, + * `omitBy`, `once`, `pairs`, `pairsIn`, `partial`, `partialRight`, `partition`, * `pick`, `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, * `pullAllBy`, `pullAt`, `push`, `range`, `rearg`, `reject`, `remove`, `rest`, - * `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, `slice`, `sort`, `sortBy`, - * `sortByOrder`, `splice`, `spread`, `tail`, `take`, `takeRight`, `takeRightWhile`, - * `takeWhile`, `tap`, `throttle`, `thru`, `times`, `toArray`, `toPath`, - * `toPlainObject`, `transform`, `union`, `unionBy`, `uniq`, `uniqBy`, `unset`, - * `unshift`, `unzip`, `unzipWith`, `values`, `valuesIn`, `without`, `wrap`, - * `xor`, `xorBy`, `zip`, `zipObject`, and `zipWith` + * `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, `slice`, `sort`, + * `sortBy`, `sortByOrder`, `splice`, `spread`, `tail`, `take`, `takeRight`, + * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `times`, `toArray`, + * `toPath`, `toPlainObject`, `transform`, `union`, `unionBy`, `unionWith`, + * `uniq`, `uniqBy`, `uniqWith`, `unset`, `unshift`, `unzip`, `unzipWith`, + * `values`, `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, + * `zipObject`, and `zipWith` * * The wrapper methods that are **not** chainable by default are: * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `deburr`, `endsWith`, `eq`, - * `escape`, `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`, - * `findLastIndex`, `findLastKey`, `floor`, `get`, `gt`, `gte`, `has`, `hasIn`, - * `head`, `identity`, `includes`, `indexOf`, `inRange`, `isArguments`, `isArray`, - * `isArrayLike`, `isArrayLikeObject`, `isBoolean`, `isDate`, `isElement`, - * `isEmpty`, `isEqual`, `isEqualWith`, `isError`, `isFinite`, `isFunction`, - * `isInteger`, `isLength`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, - * `isNull`, `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, - * `isSafeInteger`, `isString`, `isUndefined`, `isTypedArray`, `join`, `kebabCase`, - * `last`, `lastIndexOf`, `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `min`, - * `noConflict`, `noop`, `now`, `pad`, `padLeft`, `padRight`, `parseInt`, `pop`, - * `random`, `reduce`, `reduceRight`, `repeat`, `result`, `round`, `runInContext`, + * `escape`, `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, + * `findLast`, `findLastIndex`, `findLastKey`, `floor`, `get`, `gt`, `gte`, + * `has`, `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, + * `isArguments`, `isArray`, `isArrayLike`, `isArrayLikeObject`, `isBoolean`, + * `isDate`, `isElement`, `isEmpty`, `isEqual`, `isEqualWith`, `isError`, + * `isFinite`, `isFunction`, `isInteger`, `isLength`, `isMatch`, `isMatchWith`, + * `isNaN`, `isNative`, `isNil`, `isNull`, `isNumber`, `isObject`, `isObjectLike`, + * `isPlainObject`, `isRegExp`, `isSafeInteger`, `isString`, `isUndefined`, + * `isTypedArray`, `join`, `kebabCase`, `last`, `lastIndexOf`, `lowerCase`, + * `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `min`, `minBy`, `noConflict`, + * `noop`, `now`, `pad`, `padLeft`, `padRight`, `parseInt`, `pop`, `random`, + * `reduce`, `reduceRight`, `repeat`, `result`, `round`, `runInContext`, * `sample`, `shift`, `size`, `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, * `sortedLastIndex`, `sortedLastIndexBy`, `startCase`, `startsWith`, `sum`, * `sumBy`, `template`, `toLower`, `toInteger`, `toLength`, `toSafeInteger`, - * `toString`, `toUpper`, `trim`, `trimLeft`, `trimRight`, `truncate`, `unescape`, - * `uniqueId`, `upperCase`, `upperFirst`, `value`, and `words` + * `toString`, `toUpper`, `trim`, `trimLeft`, `trimRight`, `truncate`, + * `unescape`, `uniqueId`, `upperCase`, `upperFirst`, `value`, and `words` * * @name _ * @constructor @@ -9315,6 +9318,19 @@ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MAX_VALUE); + * // => false + * + * _.isLength(3.14); + * // => false + * + * _.isLength(Infinity); + * // => false */ function isLength(value) { return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; @@ -9833,16 +9849,16 @@ } /** - * The abstract operation toLength converts its argument to an integer - * suitable for use as the length of an array-like object. + * Converts `value` to an integer suitable for use as the length of an + * array-like object. * - * **Note:** This function is loosely based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). + * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). * * @static * @memberOf _ * @category Lang - * @param {*} value The object to be converted to a length. - * @return {number} Integer in range 0 to 2^32-1. + * @param {*} value The value to convert. + * @return {number} Returns the converted integer. */ function toLength(value) { return clamp(toInteger(value), 0, MAX_ARRAY_LENGTH);