ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で範囲値を含む配列を効率的に作成するにはどうすればよいですか?

JavaScript で範囲値を含む配列を効率的に作成するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-16 12:17:10242ブラウズ

How Can I Efficiently Create Arrays with Ranging Values in JavaScript?

JavaScript での範囲の値を含む配列の作成

プログラマは、値の範囲を含む配列を作成する必要に遭遇することがよくあります。一般的なアプローチには、各要素を配列に繰り返し追加するループが含まれます。しかし、ループを使用せずに、より簡潔で効率的な方法はありますか?

ES6 では、JavaScript でこの問題を解決するための 2 つの重要なメソッド、Array.from() と Keys() が導入されました。 Array.from() を使用すると、反復可能なオブジェクトを配列に変換できます。 key() メソッドは、指定されたオブジェクトのキーのイテレータを返します。これらのメソッドを組み合わせると、さまざまな値を使用して配列を作成できます。

Array.from() とkeys() を使用した解決策

Array.from(Array(10).keys())
// Result: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

上記のアプローチArray(n) が長さ n の配列を作成し、最初は未定義の値が入っているという事実を利用します。この配列で key() を使用することにより、目的の数値範囲に対応する配列のキーの反復可能値を取得します。 Array.from() は、この反復可能オブジェクトを配列に変換します。

スプレッド演算子を使用した短縮バージョン

[...Array(10).keys()]
// Result: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

スプレッド演算子 (...) を使用すると、次のことが可能になります。 iterable を個々の要素に展開します。したがって、前のソリューションの短いバージョンでは、スプレッド演算子を使用して同じ結果を達成します。

Starting from 1

範囲を 0 ではなく 1 から開始するには、 Array.from() とともに map() 関数を使用できます。

Array.from({length: 10}, (_, i) => i + 1)
// Result: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

map() 関数は、次の各要素を変換します。反復可能なもの。ここで、各要素は元の配列から渡された値であり、プレースホルダー _ で表され、対応するインデックスは i で表されます。変換により、インデックスに 1 が追加され、範囲は 1 から始まります。その後、結果が Array.from() に渡されて、最終的な配列が作成されます。

以上がJavaScript で範囲値を含む配列を効率的に作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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