我需要创建一个响应指令的函数



我需要帮助创建一个函数,您可以在其中输入一系列字母和一个数字,并根据序列中出现的字母获得结果。 这些命令是:

  • e:将数字递增 1
  • m: 将数字减 1
  • l:对数字进行平方
  • o:将结果数字添加到"*"之间的字符串中

例如,如果我输入em并且值为 100,它会返回 ",因为我没有输入o(已编辑(

或者,如果您输入eomo和数字 30,它将返回*31**29*

function process(secuencia, numero){
if(secuencia.includes(“e”)){
numero ++
}
if (secuencia.includes(“m”)){
numero –
}
if (secuencia.includes(“l”)){
numero= Math.pow(numero)
}
if (secuencia.includes(“o”)){
alert ("*"+numero+"*")
}
}

您需要遍历指令字符串中的字符,以便按顺序处理。您按照检查它们的顺序处理它们,并且仅在命令出现时执行每条指令一次。

您还有许多语法错误需要修复。

function process(secuencia, numero) {
let result = "";
secuencia.split('').forEach(command => {
switch (command) {
case 'e':
numero++;
break;
case 'm':
numero--;
break;
case 'l':
numero = numero * numero;
break;
case 'o':
result += '*' + numero + '*';
console.log(result);
break;
}
});
}
process('eomo', 30);

我不明白你的第一个测试用例(什么是p(。但是您可以尝试第二个测试用例。

function process(secuencia, numero) {
let values = [];
for(let i=0; i<secuencia.length; i++) {
let character = secuencia[i];
let numeroTmp = numero;
switch (character) {
case 'e': 
numeroTmp++; 
values.push(numeroTmp); 
break;
case 'm': 
numeroTmp--; 
values.push(numeroTmp); 
break;
case 'l': 
numeroTmp = numeroTmp * numeroTmp; 
values.push(numeroTmp); 
break;
}
}
if(secuencia.includes('o')) {
values = values.map(v => `*${v}*`);
}
return values.join(''); // What about p??????
}
console.log(process('eomo', 30));

最新更新