Does JavaScript Have a Built-In Range Function Like PHP's "range()"?
In PHP, the range() function is used to generate an array of values within a specified range, either numeric or alphanumeric. JavaScript, however, does not provide a similar native function. This article explores how to implement such functionality in JavaScript.
Numeric Ranges
To generate a range of numbers, you can use the Array.from() and Array.keys() methods combined:
[...Array(5).keys()]; // [0, 1, 2, 3, 4]
This creates an array containing index values from 0 to 4, representing the desired numeric range.
Character Ranges
For ranges of characters, you can use the String.fromCharCode() method along with the charCodeAt() method to convert character codes to characters:
String.fromCharCode(...[...Array('D'.charCodeAt(0) - 'A'.charCodeAt(0) + 1).keys()].map(i => i + 'A'.charCodeAt(0))); // "ABCD"
Iteration
You can also use a for loop to iterate over a range of values:
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"
Functions
To abstract the range generation process, you can create custom functions:
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
If you're using the Lodash library, you can utilize its _.range() function for this purpose:
_.range(10); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Non-ES6 Browser Compatibility
In older browsers without ES6 support, you can use this alternative:
Array.apply(null, Array(5)).map(function (_, i) {return i;}); // [0, 1, 2, 3, 4]
The above is the detailed content of Does JavaScript Offer a Built-in Range Function Like PHP's `range()`?. For more information, please follow other related articles on the PHP Chinese website!