JavaScriptで配列にundefinedの「穴」を作成する方法
JavaScriptの配列にundefinedの穴を作成するには、大きめのインデックスに要素を追加し、その間にある小さいインデックスをあえて埋めずに残します。こうすることで、スキップされたインデックス部分が自動的にundefinedとして扱われます。具体的な動作を理解するために、以下の例を見てみましょう。
サンプルコード
次の例では、最初に3つの要素だけを持つ配列を宣言しています。その後、もともと存在しなかったインデックス5に新しい値を代入すると、間に挟まれたインデックス3と4が空いたままになり、実行結果に示すとおりundefinedが出力されます。
<html>
<body>
<script>
var nums = [1,2,3];
nums[5] = 6;
var Len = nums.length;
var text = "";
for (i = 0; i < Len; i++) {
text += nums[i] + "</br>";
}
document.write(text);
</script>
</body>
</html>実行結果
1 2 3 undefined undefined 6
補足:疎な配列(スパース配列)について
このようにインデックスが連続していない配列は、「疎な配列(sparse array)」と呼ばれます。疎な配列では、forEach や map などの一部の配列メソッドは穴の部分を自動的にスキップする一方、for ループで直接アクセスすると undefined が返されるなど、メソッドによって挙動が異なる点に注意が必要です。
-
JavaScriptでIDごとにオブジェクトの配列をグループ化する方法
JavaScriptでオブジェクトの配列をidなどの特定のキーごとにグループ化したい場合、reduce()メソッドを使うと簡潔に実装できます。この記事では、どのプロパティにも対応できる汎用的なgroupBy関数を作成し、実際のサンプルコードとともにその仕組みを詳しく解説します。 reduce()によるグループ化の考え方 reduce()は、配列の各要素を順番に処理しながら、1つの累積値(ここではオブジェクト)を組み立てていくメソッドです。各要素からキーの値を取り出し、その値がまだ結果オブジェクトに存在しなければ新しい配列を作成して、そこへ要素を追加していくことでグループ化を実現します。 サ
-
JavaScriptで多次元オブジェクトを作成する方法【サンプルコード付き】
はじめに JavaScriptでは、オブジェクトのプロパティの値として別のオブジェクトを持たせることで、多次元(ネストされた)オブジェクトを作成できます。この構造を活用すると、氏名や学校情報、住所のように階層関係のあるデータを、直感的かつ整理された形で表現することが可能です。 サンプルコード 以下は、多次元JavaScriptオブジェクトを作成し、コンソールに表示するためのコード例です。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /