如何在不留空格的情况下在同一行中打印字符串?

时间:2018-10-24 10:05:45

标签: javascript

我使用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

但是我希望在与

相同的行中输出而没有空格
  

5 个答案:

答案 0 :(得分:2)

下面的代码段

  1. spreads字符串中的字符进入数组;
  2. maps使用您的convert()函数;数组中的每个字符;
  3. joins字符一起回到一个字符串中。

该操作的结果然后传递到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('')))