有没有更好的方法来解决这个问题;罗塞塔石';javascript编程挑战?

有没有更好的方法来解决这个问题;罗塞塔石';javascript编程挑战?,javascript,coding-efficiency,Javascript,Coding Efficiency,您好,我最近遇到了这个编程挑战,并设法找到了一个可行的解决方案。挑战包含各种类型的数据输入,我的代码似乎有可行的解决方案,可以满足数据需求,但是代码似乎更硬编码,而不是泛型。我想知道是否有任何方法可以摆脱以下代码中的if..else条件,并将数字和非数字数据输入的解决方案结合起来。每个部分都有一个for循环,似乎有点多余。有人知道如何更有效地编写代码吗?程序中有一个提示,但是我不确定我是否正确使用了它 罗塞塔石 编程挑战说明: 罗塞塔石碑是一种古老的石碑,被考古学家用来翻译希腊语和古埃及语 编写

您好,我最近遇到了这个编程挑战,并设法找到了一个可行的解决方案。挑战包含各种类型的数据输入,我的代码似乎有可行的解决方案,可以满足数据需求,但是代码似乎更硬编码,而不是泛型。我想知道是否有任何方法可以摆脱以下代码中的if..else条件,并将数字和非数字数据输入的解决方案结合起来。每个部分都有一个for循环,似乎有点多余。有人知道如何更有效地编写代码吗?程序中有一个提示,但是我不确定我是否正确使用了它

罗塞塔石 编程挑战说明: 罗塞塔石碑是一种古老的石碑,被考古学家用来翻译希腊语和古埃及语

编写一个程序,使用Rosetta翻译解码消息。“Rosetta”将是一系列与英语单词或字符配对的字符集。如果正确翻译加密邮件,您将找到隐藏邮件

提示:必须保留不属于片段的空间

输入: 将提供多行输入。输入的第一行是要翻译成英语的消息

所有其他输入行将是翻译所需的Rosetta。每对的片段将由管道字符分隔,每行输入一对

例如:

Hola Mundo
Mundo|World
Lunes|Monday
Hola|Hello
翻译为: 霍拉·蒙多

进入: 你好,世界

输出: 翻译文本,这将是一个真正的英语短语

测试1 测试输入

Hola Mundo
Mundo|World
Lunes|Monday
Hola|Hello
mieux vaut prévenir que guérir
merci|thank you
que|than
malade|sick
mieux|better
guérir|to heal
chien|dog
vaut prévenir|to prevent
beurre|butter
s'il vous plaît|please
5748494348 574159 544845 57494E44 424C4F5753
41|A
42|B
43|C
44|D
45|E
46|F
47|G
48|H
49|I
4A|J
4B|K
4C|L
4D|M
4E|N
4F|O
50|P
51|Q
52|R
53|S
54|T
55|U
56|V
57|W
58|X
59|Y
5A|Z
预期产出:Hello World

测试2 测试输入

Hola Mundo
Mundo|World
Lunes|Monday
Hola|Hello
mieux vaut prévenir que guérir
merci|thank you
que|than
malade|sick
mieux|better
guérir|to heal
chien|dog
vaut prévenir|to prevent
beurre|butter
s'il vous plaît|please
5748494348 574159 544845 57494E44 424C4F5753
41|A
42|B
43|C
44|D
45|E
46|F
47|G
48|H
49|I
4A|J
4B|K
4C|L
4D|M
4E|N
4F|O
50|P
51|Q
52|R
53|S
54|T
55|U
56|V
57|W
58|X
59|Y
5A|Z
预期输出:预防比治疗更好

测试3 测试输入

Hola Mundo
Mundo|World
Lunes|Monday
Hola|Hello
mieux vaut prévenir que guérir
merci|thank you
que|than
malade|sick
mieux|better
guérir|to heal
chien|dog
vaut prévenir|to prevent
beurre|butter
s'il vous plaît|please
5748494348 574159 544845 57494E44 424C4F5753
41|A
42|B
43|C
44|D
45|E
46|F
47|G
48|H
49|I
4A|J
4B|K
4C|L
4D|M
4E|N
4F|O
50|P
51|Q
52|R
53|S
54|T
55|U
56|V
57|W
58|X
59|Y
5A|Z
预期产量:风向

代码

将其作为JS文件和注释/取消注释数组运行,以使用不同的输入数据

function Solve() {
  /* var arr3 = [ 'Hola', 'Mundo' ]
    var arr4= [ 'Mundo', 'World', 'Lunes', 'Monday', 'Hola', 'Hello' ] */

  /*  var arr3 = [ 'mieux', 'vaut', 'prévenir', 'que', 'guérir' ]
     var arr4 = [ 'merci','thank you','que','than','malade','sick','mieux','better','guérir',
    'to heal','chien','dog','vaut prévenir','to prevent','beurre','butter', 's\'il vous plaît','please' ] */

  var arr3 = [ '5748494348', '574159', '544845', '57494E44', '424C4F5753' ]
  var arr4 = [ '41','A','42','B','43','C','44','D','45','E','46','F','47','G','48','H','49','I',
  '4A','J','4B','K','4C','L','4D','M','4E','N','4F','O','50','P','51','Q','52','R','53','S','54',
  'T','55','U','56','V','57','W','58','X','59','Y','5A','Z' ]

    var newarr = [];
    var hasNumber = /\d/;

    for (var i = 0; i < arr3.length; i++) {            

        if (hasNumber.test(arr3[i])== true){
            var char = '';
            for (k=0; k< arr3[i].toString().length; k++){

                for (var j=0; j<arr4.length; j++) {
                    //value = arr4[j].toString();
                   // var spl =  value.split(" ");
                    if(arr3[i].toString().substr(k,2) === arr4[j]){
                        char = char + arr4[j+1] ;                       
                    }
                } k= k+1;
            }  newarr.push(char.toString()); 

        } else {

            for (var j=0; j<arr4.length; j++) {
                value = arr4[j].toString();
                var spl =  value.split(" ");
                //console.log(spl);
                if (spl[0] === arr3[i]) {
                    newarr.push(arr4[j+1]) ;            
                }     
            }    

    }        



} console.log(newarr.toString().replace(/,/g, ' ')); 

}

console.log(Solve());
函数求解(){
/*var arr3=['Hola','Mundo']
var arr4=['Mundo','World','Lunes','Monday','Hola','Hello']*/
/*var arr3=['mieux','vaut','prévenir','que','guérir']
var arr4=[‘谢谢’、‘谢谢’、‘克’、‘比’、‘马拉德’、‘生病’、‘米厄’、‘更好’、‘盖瑞尔’,
“治愈”、“简”、“狗”、“维尼尔”、“预防”、“黄油”、“你的计划”、“请”]*/
var arr3=['5748494348','574159','544845','57494E44','424C4F5753']
变量arr4=[‘41’、‘A’、‘42’、‘B’、‘43’、‘C’、‘44’、‘D’、‘45’、‘E’、‘46’、‘F’、‘47’、‘G’、‘48’、‘H’、‘49’、‘I’,
‘4A’、‘J’、‘4B’、‘K’、‘4C’、‘L’、‘4D’、‘M’、‘4E’、‘N’、‘4F’、‘O’、‘50’、‘P’、‘51’、‘Q’、‘52’、‘R’、‘53’、‘S’、‘54’,
‘T’、‘55’、‘U’、‘56’、‘V’、‘57’、‘W’、‘58’、‘X’、‘59’、‘Y’、‘5A’、‘Z’]
var newarr=[];
变量hasNumber=/\d/;
对于(var i=0;i对于(var j=0;jj),您可能需要确定地问这个问题。请尝试CodeReview。谢谢。