【问题标题】:How can i make all three console.log into a single line?我怎样才能将所有三个 console.log 变成一行?
【发布时间】:2021-11-13 10:55:23
【问题描述】:

// 代码

const arr1 = [17, 21, 34];
const printForecast = function (arr1) {
  for (var i = 0; i < arr1.length; i++) {
    console.log(`${arr1[i]} C on day ${arr1.indexOf(arr1[i]) + 1}`);
  }
};

printForecast(arr1);

// 我想要这样的输出--> 第 1 天 17 摄氏度 第 2 天 21 C 第 3 天 34 摄氏度

【问题讨论】:

  • 在循环内构造字符串。将它分配给一个变量,然后在 for 循环之外打印它。
  • ${arr1.indexOf(arr1[i]) + 1} 会在数组中有重复值时立即为您提供意外结果。你的意思是${i + 1}
  • 您能否提供更多详细信息?

标签: javascript arrays for-loop


【解决方案1】:
  1. 理想情况下,您的函数应该返回一个值。

  2. 使用map 遍历数组,创建一个新的字符串数组,然后在返回之前将join 生成一个新字符串。

const arr1 = [17, 21, 34];

function getForecast(arr1) {
  return arr1.map((num, i) => {
    return `${num} C on day ${i + 1}`;
  }).join(', ');
};

console.log(getForecast(arr1));

【讨论】:

    【解决方案2】:

    在循环内构造字符串。将其分配给一个变量,然后在 for 循环之外打印它。

    const arr1 = [17, 21, 34];
    
    const printForecast = function(arr1) {
      let string = "";
      for (var i = 0; i < arr1.length; i++) {
        string += `${arr1[i]} C on day ${arr1.indexOf(arr1[i]) + 1}, `;
      }
      console.log(string);
    };
    
    printForecast(arr1);

    【讨论】:

      【解决方案3】:

      const arr1 = [17, 21, 34];
      
      arr1.forEach((item, index) => {
        console.log(`${item} C on day ${index + 1}`);
      });

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-12-26
        • 1970-01-01
        • 2019-10-30
        • 2023-02-05
        • 2014-01-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多