Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
纯JavaScript中的HashMap示例_Javascript_Hashmap - Fatal编程技术网

纯JavaScript中的HashMap示例

纯JavaScript中的HashMap示例,javascript,hashmap,Javascript,Hashmap,我有下面这样的绳子 10=150~Jude|120~John|100~Paul@20=150~Jude|440~Niroshan@15=111~Eminem|2123~Sarah 我需要一种通过提供ID来检索字符串的方法 例如:我给20;返回150~Jude | 440~Niroshan 我想我需要一个HashMap来实现这一点 键>20 价值>150~Jude | 440~Niroshan 我正在寻找纯JavaScript方法。非常感谢您的帮助 如果您从服务器得到上面的字符串作为响应,那么最

我有下面这样的绳子

10=150~Jude|120~John|100~Paul@20=150~Jude|440~Niroshan@15=111~Eminem|2123~Sarah
我需要一种通过提供ID来检索字符串的方法

例如:我给20;返回
150~Jude | 440~Niroshan

我想我需要一个HashMap来实现这一点

键>20

价值>150~Jude | 440~Niroshan


我正在寻找纯JavaScript方法。非常感谢您的帮助

如果您从服务器得到上面的字符串作为响应,那么最好使用下面的JSON格式的对象格式。如果您无法控制如何获得响应,则可以使用
string
array
方法将字符串转换为对象

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

  • @
    符号拆分字符串
  • 循环分割数组中的所有子字符串
  • 在每次迭代中,再次按
    =
    符号拆分字符串以获得键和值
  • 在对象中添加键值对
  • 要使用键从对象获取值,请使用数组下标表示法,例如
    myObj[name]
  • var str='10=150~裘德| 120~约翰| 100~Paul@20=150~裘德| 440~Niroshan@15=111~Eminem | 2123~Sarah';
    var hashMap={};//声明空对象
    //按@symbol拆分并迭代数组中的每个项
    str.split('@').forEach(函数(e){
    var arr=e.split('=');
    hashMap[arr[0]]=arr[1];//在对象中添加键值
    });
    log(hashMap);
    
    document.write(hashMap[20]);//若要使用键访问该值,如果您可以访问ES6特性,则可以考虑使用内置对象,这将为您检索/设置/…开箱即用的条目。

    有1个依赖项,但它可以很容易地更改,因为它只使用事件处理程序