JavaScriptでゼロ(0)で埋められた配列を作成する方法
ゼロで埋められた配列とは
JavaScriptで、あらかじめすべての要素が 0(ゼロ) で初期化された配列を作成したい場合があります。そんなときに便利なのが、型付き配列(Typed Array)のひとつである Uint8Array です。
Uint8Array は 8 ビット符号なし整数を扱う配列オブジェクトで、コンストラクタに要素数を指定して生成すると、すべての要素が自動的に 0 で初期化されます。通常の配列と異なり、数値データのみを扱うためメモリ効率が良いのも特徴です。
サンプルコード
以下のコードを実行して、動作を確認してみましょう。
<html>
<body>
<script>
var arr1 = ["marketing", "technical", "finance", "sales"];
var arr2 = new Uint8Array(4);
document.write(arr1);
document.write("<br>Zero filled array: " + arr2);
</script>
</body>
</html>
実行結果
上記コードの出力は次のとおりです。new Uint8Array(4) によって生成された配列の 4 つの要素が、すべて 0 になっていることがわかります。
marketing,technical,finance,sales
Zero filled array: 0,0,0,0
補足:Uint8Array のポイント
- 各要素は 0 ~ 255 の範囲の整数値を格納できます。
- 範囲外の値を代入した場合、値は変換(ラップアラウンド)されます。
- 要素数を指定して生成すると、全要素が 0 で初期化されます。
代替方法:通常の配列でゼロ埋めする
文字列なども扱える通常の Array オブジェクトでゼロ埋めを行いたい場合は、fill() メソッドや Array.from() を使う方法もあります。
// fill() を使用する例
var arr = new Array(4).fill(0);
console.log(arr); // [0, 0, 0, 0]
// Array.from() を使用する例
var arr2 = Array.from({ length: 4 }, () => 0);
console.log(arr2); // [0, 0, 0, 0]
数値専用でパフォーマンスを重視するなら Uint8Array、柔軟性が必要なら fill() や Array.from() を選ぶとよいでしょう。
-
JavaScriptでIDごとにオブジェクトの配列をグループ化する方法
JavaScriptでオブジェクトの配列をidなどの特定のキーごとにグループ化したい場合、reduce()メソッドを使うと簡潔に実装できます。この記事では、どのプロパティにも対応できる汎用的なgroupBy関数を作成し、実際のサンプルコードとともにその仕組みを詳しく解説します。 reduce()によるグループ化の考え方 reduce()は、配列の各要素を順番に処理しながら、1つの累積値(ここではオブジェクト)を組み立てていくメソッドです。各要素からキーの値を取り出し、その値がまだ結果オブジェクトに存在しなければ新しい配列を作成して、そこへ要素を追加していくことでグループ化を実現します。 サ
-
JavaScriptで多次元オブジェクトを作成する方法【サンプルコード付き】
はじめに JavaScriptでは、オブジェクトのプロパティの値として別のオブジェクトを持たせることで、多次元(ネストされた)オブジェクトを作成できます。この構造を活用すると、氏名や学校情報、住所のように階層関係のあるデータを、直感的かつ整理された形で表現することが可能です。 サンプルコード 以下は、多次元JavaScriptオブジェクトを作成し、コンソールに表示するためのコード例です。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /