2013-10-03 63 views
2

在JavaScript中,我有一个键值对的哈希表:如何使用Node.JS将每个键的多个值存储在散列表中?

"team", "aemt" 
"meat", "aemt" 
"car", "acr" 

,我想所有的匹配值的存储与字符串像这样的长度:

{4, {"team","meat"}} 
{3, {"car"} 

如何我会完成这个吗?

+0

您提供的示例不是有效的对象。请更详细地解释你想达到的目标。 –

+0

这看起来像[XY问题](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。请告诉我们你需要什么。另外,请向我们展示您尝试过的代码,这应该是一项相当简单的任务。 – Bergi

+0

基本上,我想存储一个键值表,它有一个键(单词的长度)和一个值(是字母的单词的数组)。我希望能够通过我拥有的哈希映射并为这个新表添加值 –

回答

2

按照长度划分你的集合不是必须的,散列算法应该能够自己处理它。如果你要按字数排序,这只是明智之举。每个键

存储多个值在哈希表

你不能。但是,您可以为每个键存储一组字符串。

var words = ["team", "meat", "car"], 
    map = {}; 
for (var i=0; i<words.length; i++) { 
    var key = words[i].toLowercase().split('').sort().join(''); 
    if (key in map) 
     map[key].push(words[i]); 
    else 
     map[key] = [ words[i] ]; 
} 
+0

JavaScript代码看起来像为每个密钥存储一个字符串数组是什么样子? –

+0

你有没有尝试过自己?只需将一个数组作为每个值,并在已存在时将其推入。 – Bergi

+0

'hash2 = {}; var count = 0; (i!= j && hash1 [i] == hash1 [j]) console.log(“match!”);对于(i在hash1中){ (对于hash1中的j){ hash2 [count] .push(hash1 [i]); } count ++; }' –

相关问题