纯JavaScript中的HashMap示例

时间:2015-09-21 10:14:34

标签: javascript hashmap

我有如下的字符串。

DF[,Year:=as.numeric(gsub("([0-9]+).*","\\1",Year))]

我需要一种通过提供ID来检索字符串的方法。

例如:我给20;返回10=150~Jude|120~John|100~Paul@20=150~Jude|440~Niroshan@15=111~Eminem|2123~Sarah

我想我需要一个HashMap来实现这个目标。

键> 20

价值> 150〜犹大书| 440〜Niroshan

我正在寻找一种纯粹的JavaScript方法。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

如果您在服务器的响应中获得上述字符串,那么如果您可以使用JSON格式的以下对象格式获取它,那么它会更好。如果您无法控制如何获得回复,则可以使用stringarray方法将字符串转换为对象。

在您的情况下,创建对象是更好的选择。

  1. @符号
  2. 拆分字符串
  3. 遍历splitted array
  4. 中的所有子字符串
  5. 在每次迭代中,再次按=符号拆分字符串以获取键和值
  6. 在对象中添加键值对
  7. 使用键使用数组下标表示法从对象获取值,例如myObj[name]
  8. 
    
    var str = '10=150~Jude|120~John|100~Paul@20=150~Jude|440~Niroshan@15=111~Eminem|2123~Sarah';
    
    var hashMap = {}; // Declare empty object
    
    // Split by @ symbol and iterate over each item from array
    str.split('@').forEach(function(e) {
      var arr = e.split('=');
    
      hashMap[arr[0]] = arr[1]; // Add key value in the object
    });
    
    console.log(hashMap);
    
    document.write(hashMap[20]); // To access the value using key
    
    
    

答案 1 :(得分:1)

如果您可以访问ES6功能,则可以考虑使用Map内置对象,这将为您提供有用的方法来检索/设置/ ...条目(等)。框。