如何循环对象并按Javascript中的时间戳进行分类?

时间:2014-04-15 17:36:34

标签: javascript arrays parsing momentjs

我有一组对象,其中包含一个名为timestampmotion的键。 motion包含一个值,timestamp包含一个unix时间戳。我想迭代一些对象并找到它们对应的“时间”时间段,然后我想要总计给定时间的运动值并将整个事物保存在数组数组中。我希望持续时间可以改变。

让我们说这些是我的对象;

 {
    timestamp: 1397160634,
    motion: 2,
    id: '534771d8c311731e21c75c9f'
 },
 {
    timestamp: 1397160634,
    motion: 3,
    id: '534771d8c311731e21c75c9f'
 }

现在我创建我的结果数组

var sampleDuration = 60; // Min
var minutesInDay = 1440;
var samplesPerDay = minutesInDay/sampleDuration;
var finalResultItem = []
for (var i = 0; i < samplesPerDay; i++) {
    var IndividualresultArray = []
    IndividualresultArray.push(60*i);
    IndividualresultArray.push(0);
    finalResultItem.push(IndividualresultArray);
}

我现在有一个数组数组,每个子数组的第一个项目是一个数字(对应一个分钟标记),第二个值为零。

我现在想循环遍历所有对象,并根据时间戳中的时间范围增加第二个值(motion

_forEach(objects, function (object) {
{
// grab the timestamp
// figure out which minute range it coresponds to
// increment the array value that corresponds to the minute stamp
// rinse and repeat
}

这是我空白的地方,我需要最终结果看起来像这样

[[30, 5],[60, 20],[90, 5],[120, 0] .........]

或者它甚至可能看起来像这样

[[000002400, 5],[000003000, 20],[000003600, 5],[000004200, 0] .........]

其中第一个值是忽略年,月和日的时间戳,只考虑一天中的时间。

我考虑过以某种身份使用moment.js,但我不确定如何。对这个问题的任何帮助都会很棒。

2 个答案:

答案 0 :(得分:1)

我为你创建了jsFiddle。运动增量逻辑应该看起来像(我在这里使用jQuery,但你明白了)

// Loop through and increment motion
$.each(objs, function (idx, obj) {
    var date = new Date(obj.timestamp * 1000); // Convert to milliseconds
    var minutesInDay = date.getUTCHours() * 60 + date.getUTCMinutes(); // Remove UTC for local time!
    var minuteRange = Math.floor(minutesInDay / sampleDuration);
    finalResultItem[minuteRange][1] += obj.motion;
});

编辑:编辑后删除了一些讨论。我还使用了更基于sampleDuration的通用逻辑。

答案 1 :(得分:0)

这应该这样做:

_forEach(objects, function (object) {
    var date = new Date(objec.timestamp*1000);
    var minuteOfDay = date.getUTCHours()*60+date.getUTCMinutes();
    finalResultItem[minuteOfDay][1] += object.motion;
})

对于可变采样率,使用secondOfDay并将其除以sampleDuration,然后将其放置以获取数组索引。