toLength.js

import { MAX_ARRAY_LENGTH } from './internals/native';
import toInteger from './toInteger';
/**
 * 转换 `value` 为数组对象的长度整数。
 *
 * @alias module:Util.toLength
 * @since 1.0.0
 * @see {@link https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/length | length}
 * @param {*} value 要转换的值。
 * @returns {number} 转换后的整数。
 * @example
 *
 * toLength(3.2); // 3
 *
 * toLength('3.2'); // 3
 *
 * toLength(-0); // 0
 *
 * toLength('-0'); // 0
 *
 * toLength('0'); // 0
 *
 * toLength(NaN); // 0
 *
 * toLength(Infinity); // 4294967295
 *
 * toLength(-Infinity); // 0
 *
 */
function toLength(value) {
    value = toInteger(value);
    if (!value) {
        return 0;
    }
    if (value < 0) {
        return 0;
    }
    if (value > MAX_ARRAY_LENGTH) {
        return MAX_ARRAY_LENGTH;
    }
    return value;
}
export default toLength;