JavaScript

【JavaScript】多次元配列の要素数を取得する方法

本記事では、JavaScriptで多次元配列の要素数を取得する方法について解説しています。

JavaScriptの学習におすすめ参考書
改訂3版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

本書情報
出版社技術評論社
著者山田 祥寛
発売日2023/2/13
ページ数624ページ
レビュー
(Amazon)
(4件)
先輩くん
先輩くん
10万部突破したJavaScriptの本が大幅増補改訂し7年ぶりに発売されたよ!
後輩ちゃん
後輩ちゃん
最新の基本文法から、開発に欠かせない応用トピックまで学ぶことが出来るよ!

綺麗なコードが書けるようになる!
リーダブルコード-より良いコードを書くためのシンプルで実践的なテクニック

本書情報
出版社オライリージャパン
著者Dustin Boswell / Trevor Foucher
発売日2012/6/23
ページ数260ページ
レビュー
(Amazon)
(620件)
先輩くん
先輩くん
より良いコードを書きたい人におすすめの本だよ!
後輩ちゃん
後輩ちゃん
10以上前の書籍ですが、内容は今でも役に立つものばかりです!

lengthプロパティだけでは取得できない

配列の要素数は、lengthプロパティを使用することで取得出来ますが、多次元配列の要素数を取得する場合lengthプロパティだけでは取得することが出来ません。

その理由は、多次元配列の配列を一括りでカウントしてしまうためです。

let alphabetArr = ["A", "B", ["C", "D", ["E", "F"]]];

console.log(alphabetArr.length); // => 3

上記のコードを見ると、配列の要素数は6個なのにlengthプロパティで返される値は3です。これは[“C”, “D”, [“E”, “F”]]が一括りで1とカウントされているからです。

これを正しく取得するには、flatメソッドを組み合わせます。

let alphabetArr = ["A", "B", ["C", "D", ["E", "F"]]];

console.log(alphabetArr.length); // => 3
console.log(alphabetArr.flat().length); // => 5
console.log(alphabetArr.flat(2).length); // => 6
console.log(alphabetArr.flat(Infinity).length); // => 6

多次元配列のネストの深さが未定・可変の場合は、引数に「Infinity」を指定することで完全に配列に戻した状態からlengthプロパティで要素数を取得します。

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村