如何在不破坏控制台的情况下向控制台中的值添加文本

How to add text to value in console, without breaking it

所以下面的代码会在控制台中写入十个数字。我怎么能在后面添加一些文字,比方说,第五条?所以它会像往常一样写数字,但数字 5 也会有一些文字。

for (let x = 1; x < 11; x++) {
console.log(x);
}

只需使用三元条件检查 x 是否为 5。

for (let x = 1; x < 11; x++) {
  console.log(x + (x == 5 ? ' text' : ''));
}

如果你想要数字前的文字,你可以像这样移动表达式:

console.log((x == 5 ? 'text ' : '') + x)

for(let x = 0; x < 11; x++) {
  if(x === 5) {
    console.log('number 5 and additional text');
  } else {
    console.log(x);
  }
}

如果我正确理解你的问题,这应该有效

您需要创建一个变量来存储所有输出。例如你希望它是 space-separated then.

let output = "";

for (let x = 1; x < 11; x++) {
 
  output += x + " ";

  if (x == 5) {
     output += "add something";
  }

}
console.log(output);

另一个想法是使用 switch statement(对于很多情况“在 1 上做某事”、“2”和“5”,可能更 可读等等)。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch

<script>
 for (let i = 1; i < 11; i++) {
   switch (i) {
     case 1:
       console.log("hello: " + i);
       break;
     case 5:
       console.log("hello: " + i);
       break;
     default:
       console.log(i);
   }
 }
</script>

default Optional A default clause; if provided, this clause is executed if the value of expression doesn't match any of the case clauses.

** 题外话:在for循环中使用i更常见(i == index)。

如果我没理解错的话,您希望在每个值之后添加一个字符串(在本例中为 5)。如果是这样,Array.prototype.map() 会为您完成这项工作。

console.log([1,2,3,4,5,6,7,8,9,10].map(item => item + '5'))

如果要为特定值定义5,可以使用Array.prototype.filter()

看这个例子:

// Select only odd numbers and then add the number 5 behind them
console.log([1,2,3,4,5,6,7,8,9,10].filter(value => Math.abs(value % 2) === 1).map(item => item + '5'))