javascript - 内存中的数据存储 - Javascript

标签 javascript node.js

我想一直将这种信息存储在内存中。

app_id    admin_id    url           status
123       1           xyz.com       1
123       2           xyz.com       0
539       3           exmaple.com   1
876       4           new.com       1

我主要关心的是我希望查找既简单又快速。喜欢随时查询:

  1. 获取特定admin_idurl状态
  2. 获取特定 app_id 的所有 admin_id

那么我如何将这些信息存储在内存中。

最佳答案

您可以执行以下操作。为每一行创建一个对象。并保留 admin-id 的引用和数组 byAdminId 以及 app-id 的对象 byAppIdadd 函数执行以下操作。用于检索这些对象的 getByAppIdgetByAdminId 函数。

var store = (function() {
    var byAdminId = [];
    var byAppId = {};

    return {
        add: function(appId, adminId, url, status) {
            var d = {
                appId: appId,
                adminId: adminId,
                url: url,
                status: status
            };
            if (appId in byAppId) { // You could also use byAppId.hasOwnProperty(appId) here
                byAppId[appId].push(d);
            } else {
                byAppId[appId] = [];
                byAppId[appId].push(d);
            }
            byAdminId[adminId-1] = d;
        },
        getByAppId: function(appId) {
            if (appId in byAppId) {
                return byAppId[appId];
            }
            return null;
        },
        getByAdminId: function(adminId) {
            return byAdminId[adminId-1];
        }
    };
})();

store.add(123, 1, "abc.com", 1);
store.add(123, 9, "xyz.com", 0);
store.add(539, 3, "exmaple.com", 1);
store.add(876, 4, "new.com", 1);

var objs = store.getByAppId(123);
for (var i = 0; i < objs.length; i++) {
    // access admin id as follows
    // objs[i].adminId
}

var obj = store.getByAdminId(1);
// access the url and status as follows
// obj.url
// obj.status

关于javascript - 内存中的数据存储 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8638122/

相关文章:

javascript - 无法操作 AJAX load() 加载的外部页面元素的 DOM

node.js - 尝试对日期时间索引上的 MarkLogic 集合查询结果进行排序

javascript - 如何为每个div项添加标题名称并连续显示5个div项?

javascript - 使用 InternetExplorer.Application 获取 session cookie

node.js - 为 amazon fps 生成签名

javascript - "DiscordAPIError: Unknown Message"试图编辑消息时

javascript - Algoliaplaces.js 完整表格和 map 链接

javascript - 将 jsPDF 与 Electron 结合使用

javascript - 附加选择选项 - IE 问题/解决方案导致其他浏览器问题

javascript - 设备浏览器检测