Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.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 - Fatal编程技术网

Javascript 如何使用函数检查Hashmap的键和值,然后返回输出?

Javascript 如何使用函数检查Hashmap的键和值,然后返回输出?,javascript,Javascript,我使用键和值创建了Hashmap数组: var rule = { "c": "d", "a": "o", "t": "g", "h": "a", "e": "n", "n": "t", } 现在我想创建一个函数来检查上面的数组,它返回给定输入的键的相应值。 i、 假设如果我给输入“cat”,那么它必须根据hashmap值给输出“dog” 注意:这可以通过使用switch case轻松实现,其中表达式的值与每个case的值进行比较,如果存在匹配,我们将返回输出 但

我使用键和值创建了Hashmap数组:

 var rule = 
 {
  "c": "d",
  "a": "o",
  "t": "g",
  "h": "a",
  "e": "n",
  "n": "t",
 }
现在我想创建一个函数来检查上面的数组,它返回给定输入的键的相应值。 i、 假设如果我给输入“cat”,那么它必须根据hashmap值给输出“dog”

注意:这可以通过使用switch case轻松实现,其中表达式的值与每个case的值进行比较,如果存在匹配,我们将返回输出


但我正在寻找更可靠的方法,在这里我们可以创建一个函数来检查上面的数组,该数组返回给定输入的键值。i、 e Input=cat然后Output=dog

您可以使用
数组来实现这一点。map

var规则=
{
“c”:“d”,
“a”:“o”,
“t”:“g”,
“h”:“a”,
“e”:“n”,
“n”:“t”,
}
函数输出(str){
返回[…str].map(d=>rule[d]).join(“”)
}

console.log(output('cat'))
您可以使用
Array.map

var规则=
{
“c”:“d”,
“a”:“o”,
“t”:“g”,
“h”:“a”,
“e”:“n”,
“n”:“t”,
}
函数输出(str){
返回[…str].map(d=>rule[d]).join(“”)
}

console.log(输出('cat'))
以下代码返回
dog
。假设输入字符串的顺序无关紧要。e、 g.
tac
将返回
god

var rule = 
 {
  "c": "d",
  "a": "o",
  "t": "g",
  "h": "a",
  "e": "n",
  "n": "t",
 };

 const input = "cat";
 let output = "";

 for (let value of input) {
    console.log(rule[value]);
    output += rule[value];
}

console.log(output); 

您必须像处理散列中不存在的键一样处理边缘情况

以下代码返回
dog
。假设输入字符串的顺序无关紧要。e、 g.
tac
将返回
god

var rule = 
 {
  "c": "d",
  "a": "o",
  "t": "g",
  "h": "a",
  "e": "n",
  "n": "t",
 };

 const input = "cat";
 let output = "";

 for (let value of input) {
    console.log(rule[value]);
    output += rule[value];
}

console.log(output); 

您必须像处理散列中不存在的键一样处理边缘情况

您可以尝试以下功能:

function returnValue(){ 
  var result = "";
    for(var i=0;i<arguments.length;i++){
    result+=rule[arguments[i]];
}
return result;
}
函数returnValue(){
var结果=”;

对于(var i=0;i您可以尝试以下函数:

function returnValue(){ 
  var result = "";
    for(var i=0;i<arguments.length;i++){
    result+=rule[arguments[i]];
}
return result;
}
函数returnValue(){
var结果=”;

对于(var i=0;i创建一个函数,该函数接受obj并使用给定的键对其进行迭代:

var规则=
{
“c”:“d”,
“a”:“o”,
“t”:“g”,
“h”:“a”,
“e”:“n”,
“n”:“t”,
}
功能键(obj)
{
var值=[];
for(obj中的var键)
{
值。推送(obj[键]);
}
返回值;
}

console.log(key(rule));
创建一个函数,该函数接受obj并使用给定的键对其进行迭代:

var规则=
{
“c”:“d”,
“a”:“o”,
“t”:“g”,
“h”:“a”,
“e”:“n”,
“n”:“t”,
}
功能键(obj)
{
var值=[];
for(obj中的var键)
{
值。推送(obj[键]);
}
返回值;
}

console.log(key(rule));
如果要使用内联代码,可以使用
Objec.key

var规则=
{
“c”:“d”,
“a”:“o”,
“t”:“g”,
“h”:“a”,
“e”:“n”,
“n”:“t”
};
变量输入='cat';
变量输出=对象。键(规则)。过滤器(x=>input.indexOf(x)!=-1)
.map(x=>rule[x]).join(“”);

console.log(输出);
如果要使用内联代码,可以使用
Objec.keys

var规则=
{
“c”:“d”,
“a”:“o”,
“t”:“g”,
“h”:“a”,
“e”:“n”,
“n”:“t”
};
变量输入='cat';
变量输出=对象。键(规则)。过滤器(x=>input.indexOf(x)!=-1)
.map(x=>rule[x]).join(“”);
console.log(输出);
var规则=
{
“c”:“d”,
“a”:“o”,
“t”:“g”,
“h”:“a”,
“e”:“n”,
“n”:“t”
};
让输入='cat';
让output=input.split(“”).map(key=>rule[key]).join(“”);
log(`Result:${output}`);
var规则=
{
“c”:“d”,
“a”:“o”,
“t”:“g”,
“h”:“a”,
“e”:“n”,
“n”:“t”
};
让输入='cat';
让output=input.split(“”).map(key=>rule[key]).join(“”);

console.log(`Result:${output}`);
如果输入值是
cen
,输出值是
dnt
?@T–nngue,该怎么办ễn对于cen,我们需要在hashmap中将其键定义为“cen”,值定义为“dnt”@SumanBasnet我看到你又添加了一个问题来理解我的答案。你有任何疑问吗?我可以help@NitishNarang我终于明白了。谢谢你的帮助effort@NitishNarang我不知道如何接受解决方案。感谢您让我知道,我接受了您的答案。如果输入值为
cen
,输出值为
dnt如何?@T–nNguyễn对于cen,我们需要在hashmap中将其键定义为“cen”,将值定义为“dnt”。@SumanBasnet我看到您添加了另一个问题来理解我的答案。您有任何疑问吗?我可以help@NitishNarang我终于明白了。谢谢你的帮助effort@NitishNarang我不知道如何接受解决方案。谢谢你让我知道,我接受了你的答案。