_.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

 

posted @ 2019-01-15 16:15  hahazexia  阅读(304)  评论(0)    收藏  举报