[Javascript]連想配列のサイズを取得する

投稿者:

次のようにJavascriptで連想配列を作り、そのサイズを取得してみる

var G = {
     gundam    : 'アムロ',
     guncanon  : 'カイ',
     guntank   : 'ハヤト'
 };
console.log(G.length);  //undefined

ところがこの結果は「undefined」になってしまう。
連想配列にlengthプロパティがない事が直接の原因だが、連想配列のサイズを知りたいときはどうすればいいのだろうか。

答えは、「Object.keys(連想配列).length」 または 「Object.values(連想配列).length」 または 「Object.entries(連想配列).length」 を使う。

var G = {
     gundam    : 'アムロ',
     guncanon  : 'カイ',
     guntank   : 'ハヤト'
 };
console.log(Object.keys(G).length);    //3
console.log(Object.values(G).length);  //3
console.log(Object.entries(G).length); //3

どれも同じ値を返す。

要素数を知りたいだけなら「Object.keys(obj)」を使えばいいと思う。各要素のキーや値を知りたいときはきちんと使い分けする。

参考:
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/keys https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/values https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/entries

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください