我有如下的字符串。
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方法。非常感谢任何帮助。
答案 0 :(得分:2)
如果您在服务器的响应中获得上述字符串,那么如果您可以使用JSON格式的以下对象格式获取它,那么它会更好。如果您无法控制如何获得回复,则可以使用string
和array
方法将字符串转换为对象。
在您的情况下,创建对象是更好的选择。
@
符号=
符号拆分字符串以获取键和值myObj[name]
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内置对象,这将为您提供有用的方法来检索/设置/ ...条目(等)。框。