JavaScript将对象推入数组更改了对象的值

JavaScript将对象推入数组更改了对象的值,javascript,arrays,angularjs,object,Javascript,Arrays,Angularjs,Object,我不确定我应该用什么关键词来搜索我的问题。但是我已经在墙上敲了三个小时的头,想看看这里出了什么问题。它只是简单地将对象推入数组。问题是,当我尝试console.log数组值时,两个对象键的值被更改。我在AngularJS控制器中写这篇文章 下面是我在服务上放置的示例对象: onbd.data.add = { predefined: [{ activity : 'morning jog', purpose : 'grow', days

我不确定我应该用什么关键词来搜索我的问题。但是我已经在墙上敲了三个小时的头,想看看这里出了什么问题。它只是简单地将对象推入数组。问题是,当我尝试
console.log
数组值时,两个
对象
键的值被更改。我在AngularJS控制器中写这篇文章

下面是我在服务上放置的示例对象:

onbd.data.add = {
    predefined: [{
        activity : 'morning jog',
        purpose  : 'grow',
        days     : '0 1 2 3 4 5 6',
        start    : '05:30',
        stop     : '06:00',
        meta     : 'repeats everyday on 5:30 AM for half an hour'
    }]
};
在controller中,以下是在
ng click
事件中调用的函数,该函数将上述数据从服务推送到AJAX数据数组中:

th.setActivity = function (data) {
    // the data is one of the object inside the predefined
    // key from the service above
    var newAct = {
        activity : data.activity,
        purpose  : data.purpose,
        day      : data.days,
        start    : data.start,
        stop     : data.stop
    };
    th.list.push(newAct);
};
以下是我从控制台.log('newAct',newAct)获得的信息:

}

这是正确的,但这是我在
console.log('list',th.list)时得到的结果

请注意,键
日期
目的
已更改。只有当我执行
th.setActivity
函数时才会发生这种情况。有没有想过为什么会有这种奇怪的行为


非常感谢。

我找到了答案,感谢@tymeJV指出控制台正试图使对象引用保持最新。我决定一个接一个地
console.log()
@tymeJV正确地认为,值的不同是其他一些函数修改对象的结果

我的错误是,修改函数希望接收一个
对象
作为值,而不是
字符串
,就像我在服务中所说的那样。我已经更新了它,现在它可以工作了


愚蠢的我,我知道:)

对象是通过引用传递的,控制台(在chrome中)会尽力提供帮助并保持引用的最新状态。这些值是否在其他地方被修改?不,它们没有被修改。我还有另一个类似的函数,它将处理从
表单
输入的数据,而不是服务上预定义的数据。但是这一个工作没有任何问题。由于您通过异步的ajax获取数据,我想您需要。您能在th.list.push(newAct)之前检查console.log('newAct',newAct)吗;line@Joy我想你误解了,我没有使用AJAX来提供预定义的数据,它是在服务上硬编码的,用于在控制器之间共享。但是这些数据稍后将通过AJAX进行
POST
ed,这就是我在服务器端得到错误的原因,因为键的值发生了更改。
newAct Object {
    activity: "morning jog",
    purpose: "grow",
    day: "0 1 2 3 4 5 6",
    start: "05:30",
    stop: "06:00"
list [Object]
    0: Object
        $$hashKey: "object:136"
        activity: "morning jog"
        day: "0 1 2 3 4 5 6"
        purpose: "grow"
        start: "05:30"
        stop: "06:00"
    length: 1
    __proto__: Array[0]