返回两个对象之间的差异

时间:2014-06-20 07:54:14

标签: javascript jquery html ajax

我使用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
},

编辑:我不认为这是重复的,因为建议的链接会返回一个包含多个空对象的对象 - 我希望返回一个包含的对象不同的对象

1 个答案:

答案 0 :(得分:0)

我对这个问题的理解是你必须通过比较两个不同的json找到新的工作,一个是oldData,另一个是newData 我假设newData json中新作业的时间戳应该大于OldData中的任何旧作业。

说过你可以做以下事情

1)找到最新时间戳的工作,意味着最新的工作 2)将其时间戳保存在变量latestJobTime中 3)迭代newData中的所有作业,并找到在latestJobTime之后有时间戳的作业。 4)用最新作业的时间更新latestJobTime。 当newData再次出现时执行类似的步骤。

保存时间戳的一些提示。

var latestJobTime = new Date(newData ['timeStamp'])。getTime(); //为您提供毫秒的时间表示,以便您可以与数字比较进行比较。