替换为范围和哈希映射

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了替换为范围和哈希映射相关的知识,希望对你有一定的参考价值。

在下面的代码片段中,我正在尝试替换从范围中找到的哈希映射。

var maps = new Array();

maps["k"] = 'Letter K';
maps["g"] = 'Letter G';
maps["c"] = 'Letter C';

var regex = /([kgc])a([kgc])a([kgc])a/g;

var text = 'kagaca';

text = text.replace(regex,maps["$1"]+maps["$2"]+maps["$3"]);//this does'nt work

console.log(text);

text = 'kagaca';
text = text.replace(regex,maps["k"]+' '+ maps["g"]+' '+ maps["c"]);//this works

console.log(text);

静态正则表达式工作,我坚持从范围替换它。

答案

我在replace中使用了一个声明的函数。我认为javascript误解了地图中的$Xcalled。

var maps = new Array();

maps["k"] = 'Letter K';
maps["g"] = 'Letter G';
maps["c"] = 'Letter C';

var regex = /([kgc])a([kgc])a([kgc])a/g;

var text = 'kagaca';

text = text.replace(regex,function(){
  return maps[arguments[1]]+maps[arguments[2]]+maps[arguments[3]]
});//this now works

console.log(text);

text = 'kagaca';
text = text.replace(regex,maps["k"]+' '+ maps["g"]+' '+ maps["c"]);//this works

console.log(text);

以上是关于替换为范围和哈希映射的主要内容,如果未能解决你的问题,请参考以下文章

HashMap原理:哈希函数的设计

JavaScript笔试题(js高级代码片段)

JQuery查找带有颜色的样式以替换为哈希颜色代码

基于范围的数据结构的密钥查找

URL的PHP​​和哈希/片段部分

了解基数树