一部のJSONオブジェクトにまったく新しいプロパティを追加しようとしています。どうやってやるの?
たとえば、これは私のJSON配列です。
var eventsArray;
eventsArray = [
{
"title" : "Marco 1",
"user": "Marco",
"start" : "2016-01-12T16:00:00-05:00",
"end" : "2016-01-12T17:00:00-05:00"
}, {
"title" : "Marco 2",
"user": "Marco",
"start" : "2016-01-12T10:00:00-05:00",
"end" : "2016-01-12T12:00:00-05:00"
}, {
"title" : "Marta 1",
"user": "Marta",
"start" : "2016-01-12T09:00:00-05:00",
"end" : "2016-01-12T10:00:00-05:00"
}, {
"title" : "Marta 2",
"user": "Marta",
"start" : "2016-01-13T09:00:00-05:00",
"end" : "2016-01-13T10:00:00-05:00"
}, {
"title" : "Veronica 1",
"user": "Veronica",
"start" : "2016-01-12T13:00:00-05:00",
"end" : "2016-01-12T14:00:00-05:00"
}, {
"title" : "Veronica 2",
"user": "Marco",
"start" : "2016-01-11T13:00:00-05:00",
"end" : "2016-01-11T14:00:00-05:00"
}
];
次に、「color」:「red」などの新しいプロパティをユーザーVeronicaに追加する必要があります。
var eventsArray;
eventsArray = [
{
"title" : "Marco event 1",
"user": "Marco",
"start" : "2016-01-12T16:00:00-05:00",
"end" : "2016-01-12T17:00:00-05:00"
}, {
"title" : "Marco event 2",
"user": "Marco",
"start" : "2016-01-12T10:00:00-05:00",
"end" : "2016-01-12T12:00:00-05:00"
}, {
"title" : "Marta event 1",
"user": "Marta",
"start" : "2016-01-12T09:00:00-05:00",
"end" : "2016-01-12T10:00:00-05:00"
}, {
"title" : "Marta event 2",
"user": "Marta",
"start" : "2016-01-13T09:00:00-05:00",
"end" : "2016-01-13T10:00:00-05:00"
}, {
"title" : "Veronica event 1",
"user": "Veronica",
"start" : "2016-01-12T13:00:00-05:00",
"end" : "2016-01-12T14:00:00-05:00",
"color" : "red"
}, {
"title" : "Veronica event 2",
"user": "Veronica",
"start" : "2016-01-11T13:00:00-05:00",
"end" : "2016-01-11T14:00:00-05:00",
"color" : "red"
}
];
上記では、「user」===「Veronica」(後者の2つ)を持つオブジェクトにのみ「color」:「red」を(手動で)追加しました。JavaScriptを介してこれを行うにはどうすればよいですか?
次のようないくつかの方法を試しましたが、成功しませんでした。
eventsArray[4].color = "red";
eventsArray[5].color = "red";
または:
eventsArray.user["Veronica"].color = "red";
eventsArray.user["Veronica"].color = "red";
数日からJSONの使い方を学んでいます。
この特定のケースでは、異なるプロパティを持つオブジェクトを使用しても問題は発生しないことに注意してください。私のプログラムは爆発しません。:P
ありがとうございました。
これを行う方法はたくさんあります。
簡単な方法は次のとおりです。
eventsArray.forEach( function( event ) {
if( event.user == 'Veronica' ) event.color = 'red';
});
もちろん、他のユーザーや色に対してもこれを実行することをお勧めします。したがって、それを関数に一般化するのが最善です。
function setUserColor( events, user, color ) {
events.forEach( function( event ) {
if( event.user == user ) event.color = color;
});
}
次に、次のように呼び出すことができます。
setUserColor( eventsArray, 'Veronica', 'red' );
そして今、あなたは他のユーザーにも同じことをすることができます:
setUserColor( eventsArray, 'Marta', 'green' );
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加