这有点难以用单行问题来表达,但我正在寻找一些建议/最佳实践来构建数据和用 Javascript 编写函数。
我有几个项目会定期更改状态。我的数据包含 itemID、时间戳和状态。我目前将它构建为一个对象数组(对于每个项目),具有包含时间戳和状态的历史优先级。(见下文)。
我正在寻找一个函数,它允许我使用最近的过去更新在给定时间轻松获取每个对象的状态。我不确定我的数据结构是否允许这样做,或者如果允许,如何编写函数。(对于这个例子,我将把我的时间戳缩短为一个 4 位数字)
var items = [
{ id: 1,
history: {1234: 'open', 1256: 'in-use', 1289: 'reset', 1293: 'open'},
{ id: 2,
history: {1230: 'open', 1290: 'in-use'},
{ id: 3,
history: {1238: 'open', 1241: 'in-use', 1251: 'reset'}
]
我希望能够拥有这样的功能:
getStatus(1260);
然后回来
{1: 'in-use', 2: 'open', 3: 'reset'}
每个id,其状态是根据查询时间之前的最近历史记录传入的。
我完全不依赖这个数据结构。我还尝试让历史记录包含时间和状态的对象数组,但这意味着我每次都必须遍历整个数组。我最大的问题是我的头脑正在推动我使用 SQL 方法来执行此操作,但我被困在客户端 Javascript 中......
我的问题:什么是最好的数据结构?以及我将如何编写我的 getStatus() 函数?
谢谢!