3

node.js に問題があり、json 文字列に反対しています

var chat = {};
chat.messages = [];
chat.messages['en'] = [];
chat.messages['fr'] = [];
console.log(chat.messages)
console.log(JSON.stringify(chat.messages));

私は得た

[ en: [], fr: [] ]
[]

これが正しく変換されない理由がわかりません

4

1 に答える 1

9

この行ではchat.messages、空の配列として初期化します。

chat.messages = [];

ここでは、オブジェクトとして使用します。

chat.messages['en'] = [];
chat.messages['fr'] = [];

これらの行は、実際に配列インスタンスのプロパティを設定します。Node がこれらのプロパティを通常の.toString()結果に含めるのは興味深いことです (つまり、設定されたプロパティが の配列の要素として表示されることになります) console.log(chat.messages)


いずれにせよ、修正するにchat.messagesは、オブジェクトとして宣言します。

chat.messages = {};
chat.messages['en'] = [];
chat.messages['fr'] = [];
于 2012-12-08T23:10:59.720 に答える