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中文网其他相关文章!