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

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

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

ObjectのKeyに変数を使う

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

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

参考

オブジェクト · JavaScript Primer #jsprimer
JavaScriptのObjectはオブジェクトの基礎となるものです。オブジェクトとプロパティの作成、更新、削除などの基本的な操作について紹介します。

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をコピーしました