1. ホーム
  2. javascript

[解決済み] 文字列にプロパティを作成できない

2022-02-19 14:44:13

質問

以下のコードで空のオブジェクトに再帰的にプロパティを設定しようとしたときに、奇妙な問題に遭遇しました。

簡略化されたコード

const birthdays = {};

// Loop -> Passing day, id and birthday
birthdays[day] = day;
birthdays[day][id] = birthday;

日の例です。 '01012017'

idの例です。 1547

誕生日の例です。 {name: John}

エラーメッセージ

Cannot create property '123' on string '06012017'

私はこの問題を抱えているAngularを持ついくつかの人々を見たが、彼らの答えは私のために何も解決しない(Angular固有の構文などである)。

解決方法は?

Empty Objectsは、値を割り当てる前に個別に作成する必要があります。また const はここでは良いアイデアではありません。とにかく、これは私の提案に過ぎません。

const birthdays = {};
var day = 123;
var id = 21;
var birthday = 2016;
// Loop -> Passing day, id and birthday
birthdays[day] = {};
birthdays[day][id] = birthday;