The Wayback Machine - https://web.archive.org/web/20170626184109/https://github.com/lodash/lodash/blob/master/toLength.js
Skip to content
Permalink
Fetching contributors…
Cannot retrieve contributors at this time
46 lines (42 sloc) 892 Bytes
import toInteger from './toInteger.js'
/** Used as references for the maximum length and index of an array. */
const MAX_ARRAY_LENGTH = 4294967295
/**
* Converts `value` to an integer suitable for use as the length of an
* array-like object.
*
* **Note:** This method is based on
* [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
*
* @since 4.0.0
* @category Lang
* @param {*} value The value to convert.
* @returns {number} Returns the converted integer.
* @example
*
* toLength(3.2)
* // => 3
*
* toLength(Number.MIN_VALUE)
* // => 0
*
* toLength(Infinity)
* // => 4294967295
*
* toLength('3.2')
* // => 3
*/
function toLength(value) {
if (!value) {
return 0
}
value = toInteger(value)
if (value < 0) {
return 0
}
if (value > MAX_ARRAY_LENGTH) {
return MAX_ARRAY_LENGTH
}
return value
}
export default toLength
You can't perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Morty Proxy This is a proxified and sanitized view of the page, visit original site.