我使用javascript创建了带有开关盒的功能。我用于循环以打印所需的输出。
function convert (x){
switch(x) {
case "c":
return "d";
case "a":
return "o";
case "t":
return "g";
}
}
var str = "cat";
for (i = 0; i< str.length; i++){
console.log(convert(str[i]));
}
我的输出是
d
o
g
但是我希望在与
相同的行中输出而没有空格狗
答案 0 :(得分:2)
下面的代码段
该操作的结果然后传递到console.log()
,以一行打印。
function convert(x) {
switch (x) {
case "c":
return "d";
case "a":
return "o";
case "t":
return "g";
}
}
var str = "cat";
console.log([...str].map(convert).join(''));
答案 1 :(得分:1)
console.log
总是写完整的行。如果要使用console.log
来输出"dog"
,则必须先构建字符串,然后在一次调用中将其输出。
只需对代码进行最少的更改:
function convert(x) {
switch (x) {
case "c":
return "d";
case "a":
return "o";
case "t":
return "g";
}
}
var str = "cat";
var result = "";
for (i = 0; i < str.length; i++) {
result += convert(str[i]);
}
console.log(result);
答案 2 :(得分:1)
对于DRY代码,您可以改为使用.replace
,并使用替换对象而不是switch
const replacements = {
c: 'd',
a: 'o',
t: 'g'
};
const str = "cat";
const convert = str => str.replace(/[cat]/g, char => replacements[char]);
console.log(convert(str));
答案 3 :(得分:1)
您无需将其登录到每个循环中,而是可以将其保存到某个字符串中并稍后打印
function convert (x){
switch(x) {case "c": return "d"; case "a": return "o"; case "t":
return "g"; }
}
var str = "cat", convertedStr = '';
for (i = 0; i< str.length; i++){
convertedStr += convert(str[i]);
}
console.log(convertedStr)
答案 4 :(得分:0)
不是向函数发送单个字符,而是发送字符数组。在数组上循环,然后将相关字符推到另一个数组并加入它们
function convert(x) {
let newArray = []
for (let i = 0; i < x.length; i++) {
switch (x[i]) {
case "c":
newArray.push("d");
break;
case "a":
newArray.push("o");
break;
case "t":
newArray.push("g");
break;
}
}
return newArray.join('')
}
var str = "cat";
console.log(convert(str.split('')))