【JavaScript】(.lengthじゃダメ!)連想配列の要素数を取得する方法

プログラミング

どうも、コウイチです。

今回は、JavaScriptで連想配列の要素数を取得するところで見事にハマりましたので、覚え書きがてら書いてみます。

普通の配列の要素数を取得してみる。

普通の配列の要素数を取得するには、.lengthを使えばいいですよね。

実行結果:

同じように連想配列の要素数を取得してみる(まさかのundefined)。

では、同じように連想配列の要素数を取得してみます。が・・・

実行結果:

あれ?何故か要素数が undefined(未定義)ですとなっています。

何故だ!!実は先ほど、これでハマりました。

当然こうだろうと思っていると、調べようともしないんですよね。

そして、どうも.lengthに失敗してるぽいことが分かり、ようやく調べました。

なんで取得できないのか?

理由はというと単純に、連想配列には、.lengthなんていうプロパティは無いんだそうです。

そうなんだっけ?

じゃあ、何か工夫をして要素数を調べなければなりませんね。

Object.keys()を使用

調べた結果、Object.keys() という、オブジェクトを指定すると、それに所属するプロパティらを配列で返す関数がありました。

MDN web docsには、以下の説明があります。

Object.keys() メソッドは、与えられたオブジェクト自身に存在する列挙可能なプロパティの配列を for…in ループで提供されるものと同じ順番で返します (for-in ループとの違いは、for-in ループではプロトタイプチェインのプロパティも列挙することです)。

つまり、オブジェクトというとこに連想配列を与えれば、そのキーを配列で返してくれることになります。

なので、そのキー配列の要素数を調べればいいことになります。

[char no=1 char=”コウイチ”]お、配列なら.lengthが使えるんだな。[/char]

その通りでした。

ちゃんと取得できる例(Object.keys()を使用)

無事、取得できました!

まとめ

  • 普通の配列は.lengthで要素数を取得するけど、連想配列では使えない。
  • Object.keys(連想配列).lengthで取得できる。

連想配列の要素数が欲しくなることは少ないかもしれませんが、だからこそハマると危険ですね。

今回ハマってしまったので(僕だけ?)覚えておきましょう!

それではまた。

スキルに自信がない20代でも、フリーランスになって月50万以上を稼げます。

最後に僕の実体験から、プログラマーが最も簡単に収入を上げる方法をお伝えします。

それは、フリーランスになることです。

 

エンジニアだったら誰でもフリーランスになれます。

業務経験が1年もあれば、月収50万が狙えます。

 

信じられないかもしれませんが、

フリーランスというのは稼げる働き方なのです。

 

僕は正社員でプログラマーをしていたのですが、

・終電帰りが当たり前
・上司に毎日怒鳴られる。
・手取り16万

という地獄のような環境が耐えられなくなり、

フリーランスになったら月収がいきなり60万になりました。

 

正直僕なんか、大したスキルはありません。

いつも下っ端の下請けプログラマーでした。

 

なのに収入は3倍になりました。

自信と健康とお金を手に入れることができました。

 

いつまでたっても上がらない正社員の給料にイライラしている方は、

是非フリーランスにチャレンジしてください。

 

プログラマーが最速で月収を上げる方法です。

 

・フリーランスなんて不安定じゃん。仕事見つからなかったらどうするの?

・仕事探しがだるい。

・転職活動なんかする暇ないんだよ

・俺のスキルじゃ無理なんだよ

 

僕もそう思ってビビってました。

ですが、思った以上に簡単でした。

 

思い込みというのは本当に恐ろしいです。

やれば行ける世界です。

 

そんな僕がフリーランスになって、

3年間働いても上がらなかった給料を、

一瞬で3倍に上げた方法を、以下の記事で書いています。


【月収20万円⇒月収60万円】価値ナシ貧乏プログラマーの僕が、7日間で収入が3倍になった物語

プログラミング
衣食住よりプログラミング

コメント

  1. […] ここで教えて頂きました : https://senews.jp/hash-length/ […]

タイトルとURLをコピーしました