ホームページ >ウェブフロントエンド >jsチュートリアル >PHP の range() に似た Range 関数を JavaScript で作成するにはどうすればよいですか?

PHP の range() に似た Range 関数を JavaScript で作成するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-14 21:24:13326ブラウズ

How Can I Create a Range Function in JavaScript Similar to PHP's range()?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。