首页 > web前端 > js教程 > JavaScript 是否提供像 PHP 的'range()”那样的内置范围函数?

JavaScript 是否提供像 PHP 的'range()”那样的内置范围函数?

DDD
发布: 2024-12-09 19:46:15
原创
273 人浏览过

Does JavaScript Offer a Built-in Range Function Like PHP's `range()`?

JavaScript 是否有像 PHP 的“range()”一样的内置 Range 函数?

在 PHP 中,range() 函数是用于生成指定范围内的值数组,可以是数字或字母数字。然而,JavaScript 不提供类似的本机函数。本文探讨了如何在 JavaScript 中实现此类功能。

数字范围

要生成数字范围,您可以使用 Array.from() 和 Array.from() 。 key() 方法组合:

[...Array(5).keys()]; // [0, 1, 2, 3, 4]
登录后复制

这将创建一个包含从 0 到 4 的索引值的数组,表示所需的数字range.

字符范围

对于字符范围,您可以使用 String.fromCharCode() 方法和 charCodeAt() 方法将字符代码转换为字符:

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

迭代

您还可以使用 for 循环迭代一系列值:

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"
登录后复制

函数

要抽象范围生成过程,您可以创建自定义函数:

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

如果您使用 Lodash 库,您可以利用其 _.range() 函数来实现此目的:

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

非 ES6 浏览器兼容性

在不支持 ES6 的旧版浏览器中,您可以使用此替代方案:

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

以上是JavaScript 是否提供像 PHP 的'range()”那样的内置范围函数?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板