JavaScript には PHP の range() のような Range 関数がありますか?
PHP の range() 関数を使用すると、数値の配列を簡単に生成できますまたは指定された範囲内の文字。ただし、JavaScript にはこの目的のための組み込み関数がありません。この機能を JavaScript で実装する方法をいくつか示します。
Numbers
Array.keys() メソッドを利用します:
[...Array(5).keys()]; // [0, 1, 2, 3, 4]
文字の反復
レバレッジString.fromCharCode() を使用して文字範囲を反復処理します:
String.fromCharCode(...[...Array('D'.charCodeAt(0) - 'A'.charCodeAt(0) + 1).keys()].map(i => i + 'A'.charCodeAt(0))); // "ABCD"
Generic Iteration
String.fromCharCode() と組み合わせて for...of ループを使用します。
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))) }
型付き関数として
TypeScript ユーザーは型付き関数を定義できます:
function range(size:number, startAt:number = 0):ReadonlyArray<number> { return [...Array(size).keys()].map(i => i + startAt); } function characterRange(startChar:string, endChar:string):ReadonlyArray<string> { return String.fromCharCode(...range(endChar.charCodeAt(0) - startChar.charCodeAt(0), startChar.charCodeAt(0))) }
外部ライブラリ
または、range() 関数を提供する lodash.js などのサードパーティ ライブラリを利用することもできます。
_.range(10); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] _.range(1, 11); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
以上がPHP の range() に似た Range 関数を JavaScript で作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。