Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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 Stringify覆盖数据_Javascript_Jquery_Json_Object - Fatal编程技术网

Javascript Stringify覆盖数据

Javascript Stringify覆盖数据,javascript,jquery,json,object,Javascript,Jquery,Json,Object,Stringify似乎不适用于我的对象。我的代码是: var LessonTimes={}, CurrentLesson={}, LessonTimeID=1; $('.AddTimeSection').each(function(e){ CurrentLesson['day']=$(this).find('.AddTimeDay').val(); CurrentLesson['start']=$(this).find('.AddTimeStart').val(); Cu

Stringify似乎不适用于我的对象。我的代码是:

var LessonTimes={}, CurrentLesson={}, LessonTimeID=1;
$('.AddTimeSection').each(function(e){
    CurrentLesson['day']=$(this).find('.AddTimeDay').val();
    CurrentLesson['start']=$(this).find('.AddTimeStart').val();
    CurrentLesson['end']=$(this).find('.AddTimeEnd').val();
    CurrentLesson['notes']=$(this).find('.AddTimeNotes').val();
    CurrentLesson['id']=LessonTimeID;
    LessonTimes[LessonTimeID]=CurrentLesson;
    console.log(LessonTimes[LessonTimeID]);
    LessonTimeID+=1;
});
console.log(JSON.stringify(LessonTimes));
下面是我的JSON.stringify的输出。正如你所看到的,最后一个对象是重复的,但我不明白为什么,因为所有的单个对象都是正确的

Object {day="Mon", start="15:00", end="16:00", id=1, ...}
Object {day="Tue", start="16:00", end="17:00", id=2, ...}
Object {day="Wed", start="17:00", end="18:00", id=3, ...}
JSON = {"1":{"day":"Wed","start":"17:00","end":"18:00","notes":"","id":3},"2":{"day":"Wed","start":"17:00","end":"18:00","notes":"","id":3},"3":{"day":"Wed","start":"17:00","end":"18:00","notes":"","id":3}}

这不是JSON的问题

您需要在每次迭代中重新分配
CurrentLesson={}
。否则,您将更改同一对象。

这应该可以:

var LessonTimes = [];
$('.AddTimeSection').each(function(e){
    LessonTimes.push({
        day: $(this).find('.AddTimeDay').val(),
        start: $(this).find('.AddTimeStart').val(),
        end: $(this).find('.AddTimeEnd').val(),
        notes: $(this).find('.AddTimeNotes').val(),
        id: LessonTimes.length
    });
});
console.log(JSON.stringify(LessonTimes));