Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何向JSON数组添加新属性?_Javascript_Arrays_Json - Fatal编程技术网

Javascript 如何向JSON数组添加新属性?

Javascript 如何向JSON数组添加新属性?,javascript,arrays,json,Javascript,Arrays,Json,我尝试将新属性附加到一些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" }, {

我尝试将新属性附加到一些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"
    }

    ];
然后我需要向用户Veronica添加一个新属性,例如“color”:“red”,即:

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”(后两个)的对象。如何通过JavaScript实现这一点

我尝试了一些没有成功的方法,例如:

eventsArray[4].color = "red";
eventsArray[5].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' );

有很多方法可以做到这一点

这里有一个简单的方法:

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' );
这是一个基本的

 for(var i = 0; i < eventsArray.length; i++){
   if(eventsArray[i].user === "Veronica" {
      eventsArray[i].color = "red";
   }
 }
for(变量i=0;i
这里有一个基本的

 for(var i = 0; i < eventsArray.length; i++){
   if(eventsArray[i].user === "Veronica" {
      eventsArray[i].color = "red";
   }
 }
for(变量i=0;i
eventsArray.forEach(函数(项){if(item.title.indexOf('Veronica')>-1)item.color='red';})简单地工作,请尝试以下操作
这不是JSON。它是一个包含对象的Javascript数组。JSON是一种密切相关的序列化格式。@smallatom:OP不想检查
标题
,而是检查
用户
。工作很简单,试试这个
eventsArray.forEach(函数(项){if(item.title.indexOf('Veronica')>-1)item.color='red';})
这不是JSON。它是一个包含对象的Javascript数组。JSON是一种密切相关的序列化格式。@smallatom:OP不想检查
标题
,而是检查
用户