这是我的数据:
[
{
"idi": 0,
"ut": 1479679625,
"eid": 0,
"ide": 0
},
{
"idi": 1,
"ut": 1479679630,
"eid": 1,
"ide": 0
},
{
"idi": 2,
"ut": 1479679650,
"eid": 0,
"ide": 1
},
{
"idi": 3,
"ut": 1479679655,
"eid": 1,
"ide": 1
}
]
ut
是unix时间戳,我需要获得2 ut值范围之间的所有对象。喜欢> = 1479679625&& < = 1479679655(第一个和最后一个对象之间的所有对象)。我使用带有lowdb和nodejs的lodash:
const low = require('lowdb');
var _ = require('lodash');
var DB = low('pathDB');
var TIME_QUERY_START_UNIX = 1479679625;
var TIME_QUERY_STOP_UNIX = 1479679655;
var QUERY = _.filter(DB, function(o) { return TIME_QUERY_START_UNIX <= o.ut && o.ut <= TIME_QUERY_STOP_UNIX; });
但它会抛出
无法读取未定义的属性'ut'
我如何做正确的命令?
由于
答案 0 :(得分:3)
_.filter(data, function(item) {
return _.inRange(
item.ut,
TIME_QUERY_START_UNIX,
TIME_QUERY_STOP_UNIX + 1
);
})
检查item.eid = 0
_.filter(data, function(item) {
return _.every([
_.inRange(
item.ut,
TIME_QUERY_START_UNIX,
TIME_QUERY_STOP_UNIX + 1
),
item.eid === 0
]);
})