Tag: hashmap

如何使用Node.JS将每个键的多个值存储在散列表中?

在JavaScript中,我有一个键值对的哈希映射如下: "team", "aemt" "meat", "aemt" "car", "acr" 我想要存储所有的匹配值,像这样的string的长度: {4, {"team","meat"}} {3, {"car"} 我将如何做到这一点?

用Node.jslogging遍历的fspath

我有一个工具,正在通过某些文件的文件系统进行并发search。 当该工具通过fssearch时,可能会发现它需要在原来不包含在search中的目录中进行search。 我应该做的是记住每个已经开始search的目录。 我想不出一个更好的方式来记忆文件path,除非存储在像这样的散列: interface IMemoizationMap { [key: string]: boolean } 所以可能看起来像: const hash = { '/Users/you/projects/x': true, '/Users/you/projects/x/lib': true, '/Users/you/projects/x/lib': true, … … '/Users/you/some-stuff/z': true }; 然后我做一个快速查找,看看我是否需要search某个目录。 这个解决scheme令人感到尴尬的是,哈希中的值几乎可以是任何东西 – 真,假,未定义的。 这是记忆遍历文件path的最好方法吗? 撇开,就是performance key in hash 一样 hash[key] ? 如果是这样的话,那么存储的值就会有一些值: 当一个目录开始被search时,我可以使这个值为false,然后当目录search结束时,我可以将值翻转为true。 那么价值至less意味着什么 。

在关联数组中进行双重索引

我正在使用Node.js构build一个服务器。 我将代表用户的对象存储在关联数组中,现在这些对象的索引是该连接的套接字标识。 使用Socket.io库,我通过简单地执行socket.id来获得它,因此对于每个处理程序来说,照顾我的请求,我总是可以知道哪个用户提出了请求。 客户端每个用户都有连接用户的id(与socket ID不同)。 问题araises当我有一个处理程序,用于发送消息从用户到另一个,我举个例子: 用户A需要发送一个消息给用户B,我的协议指定的消息是这样的: MSG_KEY:{MSG:'hello world',USER_ID:'12345'} 服务器端我有一个处理程序,侦听“MSG_KEY”,当消息发送它执行和使用socket.id我可以检索谁发出请求,但问题是,我需要也得到用户B但这次使用他的USER_ID。 我不想使用socket.id来避免会话欺骗。 我首先想到了在我的数组中的索引,通过从socket.id和用户ID索引它们的用户。 我的问题是:这样做是个好主意吗? socket.io提供了一个简化这个的方法吗?

结合两个字典:JavaScript中的perl“hashrefslice”语法?

我有单独的configuration文件,因为其中包含密码和其他敏感数据,我不介意世界看到。 所以我们说我有: sensitivedata = { password : 'foobaz', hostname : 'quux' }; globalconfig = { timeout : 86400, port : 5190 }; 我希望globalconfig有字段password和hostname 。 我可以这样做: globalconfig.hostname = sensitivedata.hostname; globalconfig.password = sensitivedata.password; 但是当有很多领域时,这是很乏味的。 作为一名perl程序员,我想要做这样的事情: @{ $globalconfig }{ keys %{ $sensitivedata } } = @{ $sensitivedata }{ keys %{ $sensitivedata } }; # or … @{ $globalconfig […]

node.js数组实际上hashmaps?

令我惊讶的是,这段代码实际上在node.js中起作用: var arr = new Array(); // also works: var arr = []; arr[0] = 123; arr['abc'] = 456; arr; // node.js: [ 123, abc: 456 ], chrome: [123] 我一直认为一个数组按顺序存储它的对象,只能通过一个整数键来访问,就像C ++中的std :: vector一样。 然而,在这里它就像一个地图或一个对象。 除了混淆之外,相同的代码在chrome中也能像预期的那样工作,使用单个条目123返回数组。我认为node.js和chrome javascript使用相同的内部引擎V8。 这里发生了什么?