首页 >web前端 >js教程 >如果没有专用的'range()”函数,JavaScript 如何生成数字和字符范围?

如果没有专用的'range()”函数,JavaScript 如何生成数字和字符范围?

Barbara Streisand
Barbara Streisand原创
2024-12-10 22:26:10939浏览

How Can JavaScript Generate Numeric and Character Ranges Without a Dedicated `range()` Function?

JavaScript 内置的生成范围的功能

在 PHP 中,range() 函数用于生成指定范围内的值的数组界限。 JavaScript 没有直接的等效项,但可以使用本机方法来实现类似的功能。

数字范围

要创建数字范围,您可以使用以下技术:

[...Array(5).keys()]; // [0, 1, 2, 3, 4]

此代码生成一个从 0 到 4 的值数组(包含)。

字符范围

对于字符范围,请使用以下方法:

String.fromCharCode(...[...Array('D'.charCodeAt(0) - 'A'.charCodeAt(0) + 1).keys()].map(i => i + 'A'.charCodeAt(0))); // "ABCD"

此代码生成字符 " A”到“D”。

迭代范围

或者,您可以使用迭代来生成范围:

for (const x of Array(5).keys()) {
  console.log(x, String.fromCharCode('A'.charCodeAt(0) + x));
} // 0,"A" 1,"B" 2,"C" 3,"D" 4,"E"

此代码迭代从 0 到 4 的数字并打印相应的字符。

创建范围函数

创建可重用范围函数,您可以执行以下操作:

function range(size, startAt = 0) {
    return [...Array(size).keys()].map(i => i + startAt);
}

function characterRange(startChar, endChar) {
    return String.fromCharCode(...range(endChar.charCodeAt(0) -
            startChar.charCodeAt(0), startChar.charCodeAt(0)))
}

第三方库

lodash.js 库提供了一个 _.range() 函数,可以简化范围生成:

_.range(10); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

旧版浏览器兼容性

对于不支持ES6的旧版浏览器,请使用以下代码:

Array.apply(null, Array(5)).map(function (_, i) {return i;}); // [0, 1, 2, 3, 4]

以上是如果没有专用的'range()”函数,JavaScript 如何生成数字和字符范围?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn