2016-07-18 3 views
0

JavaScriptを使用して、たとえばオブジェクトの3番目のプロパティを設定するにはどうすればよいですか?私はこれを行う第三のメッセージの翻訳にアクセスするにはオブジェクトからn番目のプロパティを設定する

var translations = { 
    "domain" : null, 
    "plural-forms" : "nplurals=2; plural=(n != 1);", 
    "messages" : { 
     "Home" : ["Strona G\u0142\u00f3wna"], 
     "Go to our YoYo Games Archive" : ["Przejd\u017a do Archiwum Gier YoYo"], 
     "Welcome" : ["Witamy"] 
    } 
}; 

:たとえば、私は、HTMLの頭の中で次のようJSONPを持ってObject.values(translations.messages)[2]を、今私はセットことにしたいです。

ご協力いただきありがとうございます。 :)

+0

をいわゆる3番目のキーが配列され、あなたはこの配列に要素をプッシュしたいですか? – brk

+3

オブジェクトプロパティは_unsorted_であるため、オブジェクトの_thirdプロパティ_はナンセンスです。 –

+0

次のようにアクセスしてください:translations.messages.Welcome ...ナンバリングが変更される可能性があるため、オブジェクトのn番目のプロパティにアクセスしようとしても意味がありません。 –

答えて

0

まずはJSONPではなく、単なるJSオブジェクトです。

translations.messages["Go to our YoYo Games Archive"] = "new value"あなたはなぜn番目のアイテムでそれをしたいのかわかりません。

あなたは本当に代わりに、あなたはいつでも行うことができます位置に基づいて、それを実行する必要がある場合:

var key = Object.keys(translations.messages)[2]; 
translations.messages[key] = "new message"; 
+0

これは完璧です!私は位置に基づいてメッセージを設定したいと思っていました。なぜなら私は言語ファイルアップデータのためにグリッドPOSTフォームを使用しており、フォームテキストエリアにはその位置に基づいて識別子が与えられています。 :)ええ、私はJSONPのコンセプトを誤解していると思います。今は理解していると思います(JSONとコールバック関数)。 –

+0

私は(他の人が言ったように)依然としてポジションに頼っていないだろう。 JSオブジェクト内のキーの位置は、特にエンコード/デコード(フォーム本体の解析など)において保証されません。最もよく構築されたフォームライブラリは、フォームの要素名を使用して、必要な構造に解析することができます。 ' Paul

+0

ありがとう、私はテキストエリアに名前を付けることに行きました。私が以前これを考えていなかったのは不思議です。 xD http://gamemaker.mooo.com/ar/language-updater –

関連する問題