_.toLength(value)
168
_.toLength(value)
_.toLength讲一个值转换成一个整数以适合作为一个array-like对象的length属性使用
参数
value (*): 需要转换的值
返回值
(number): 返回转换好的整数
例子
_.toLength(3.2); // => 3 _.toLength(Number.MIN_VALUE); // => 0 _.toLength(Infinity); // => 4294967295 _.toLength('3.2'); // => 3
源代码
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 */ //讲一个值转换成一个整数以适合作为一个array-like对象的length属性使用 function toLength(value) { if (!value) {//如果value为假,返回0 return 0 } value = toInteger(value)//将value转换成整数 if (value < 0) {//如果是负数,返回0 return 0 } if (value > MAX_ARRAY_LENGTH) {//如果数字大于最大允许的数组长度,返回最大允许的数组长度 return MAX_ARRAY_LENGTH } return value } export default toLength