JavaScriptでのオブジェクト要素取得エラー
あるオブジェクトがあるとします:
let obj = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
};
このオブジェクトから、特定のキーによって要素を取得したいとします。 そのキーの名前は、ユーザーが入力フィールドに入力するとします:
console.log(input.value);
一部の初心者プログラマーは次のような間違いを犯します: オブジェクトをループで走査し、キーを入力値と順番に比較するのです。 以下のように:
for (let key in obj) {
if (key === input.value) {
let elem = obj[key];
console.log(elem); // 求めている値
break;
}
}
しかし、このタスクにおいてループは完全に余計です。 なぜなら、キーを使って単純に値を取得できるからです。 次のように:
let elem = obj[input.value];
必要に応じて、そのようなキーがオブジェクトに存在するか チェックを追加することもできます:
if (obj[input.value] !== undefined) {
let elem = obj[input.value];
console.log(elem);
} else {
console.log('オブジェクトにそのようなキーはありません');
}