JSでObjectのKeyに変数を使う・メンバ数を取得する

Sponsored Link

JSでのObject関連のあれこれを書き留めておく。自分用メモ。

Node.jsでDynamoDBからデータを取得した時のObjectをうまいこと使いたいってことでいろいろ調べた結果です。

ObjectのKeyに変数を使う

オブジェクト定義時に[]でkeyとなる変数を囲んで指定すれば、うまいことやってくれます。

var value = "salad"
var key = "name"
var obj = {[key]: value} // {"name": "salad"}

参考

JavaScript Primer - 迷わないための入門書
JavaScript Primerは、JavaScriptの基礎から応用までを一貫して学べる入門書です。

Objectのメンバ数を取得する

例えば、こんなObjectがあったときを考えます。

var userScore = {
 "sato": 100,
  "suzuki": 80,
  "takahashi": 90,
  "tanaka": 85
}

ユーザ名とそのユーザのスコアですね。

で、このオブジェクトからスコアが記録されているユーザの人数を取得したいときにどうしようかという話です。

もちろんObjectにlengthプロパティはありません。

console.log(userScore.length) // もちろん、undefined

Object.keys()を使用する

ObjectのKeyを要素とした配列を作成し、その配列のlengthプロパティを参照する

console.log(Object.keys(userScore).length) // 上のオブジェクトなら、出力は 4

参考

Object.keys() - JavaScript | MDN
Object.keys() 静的メソッドは、指定されたオブジェクトが持つプロパティの名前の配列を、通常のループで取得するのと同じ順序で返します。
タイトルとURLをコピーしました