我使用AJAX以设定的间隔请求作为JSON(对象和数组的复杂对象)的作业列表。然后,我使用返回的数据更新页面的一部分。
问题是我只想用任何新作业更新页面,我不能比较对象的数量,因为其他方面的实现方式。
我怎样才能通过比较oldData
&而不仅仅返回 新的对象? newData
?
示例JSON对象:
{
latStamp: 32.6132698059082,
timeStamp: "2014-06-20 07:05:00+00:00",
job: {
status: 8,
customer: "Mr Crustomer",
task: "Some task",
machineType: "XE3000",
tempJobNumber: "GO28323",
jobNumber: "GD23203",
causeOfFault: "",
workCarriedOut: "",
jobOwnerName: "Job Owner",
machineSerialNumber: "",
costCentre: 1,
mileage: 0,
location: "Location",
scheduledDateTime: "19/06/2014 17:00:00",
shortDescription: "",
id: 1,
engineer: 1
},
status: {
actionGuidance: "Action guidance here",
description: "Completed",
endsTimer: true,
colour: "73B63F",
startsTimer: false,
id: 8
},
lngStamp: 4.886201977729797
},
编辑:我不认为这是重复的,因为建议的链接会返回一个包含多个空对象的对象 - 我希望返回一个包含仅的对象不同的对象
答案 0 :(得分:0)
我对这个问题的理解是你必须通过比较两个不同的json找到新的工作,一个是oldData,另一个是newData 我假设newData json中新作业的时间戳应该大于OldData中的任何旧作业。
说过你可以做以下事情
1)找到最新时间戳的工作,意味着最新的工作 2)将其时间戳保存在变量latestJobTime中 3)迭代newData中的所有作业,并找到在latestJobTime之后有时间戳的作业。 4)用最新作业的时间更新latestJobTime。 当newData再次出现时执行类似的步骤。
保存时间戳的一些提示。
var latestJobTime = new Date(newData ['timeStamp'])。getTime(); //为您提供毫秒的时间表示,以便您可以与数字比较进行比较。