有没有什么办法 return 来自 for 循环的所有控制台日志在一行中?

Is there any way to return all the console logs from a for loop in a single line?

我不知道怎么问我的问题。

我要实现的是这个。

This item color is: red This item number is: 1
This item color is: green This item number is: 2
This item color is: blue This item number is: 3

但是我的函数返回这个

This item color is: red This item number is: 1
This item color is: green This item number is: 2
This item color is: blue This item number is: 3

我尝试在我的控制台日志末尾使用换行符 (\n),但它在每个循环中继续打印另一行。

这是我的代码:https://jsfiddle.net/whmnat0u/

let arr = [{
    number: 1,
    color: "red"
  },
  {
    number: 2,
    color: "green"
  },
  {
    number: 3,
    color: "blue"
  }
]

const returnItems = (list) => {
  let emptyArray = []
  for (const item of list) {
    emptyArray.push({
      number: item.number,
      color: item.color
    })
  }
  printItems(emptyArray);
}

const printItems = (emptyArray) => {
  for (const item of emptyArray) {
    console.log(`This item color is: ${item.color} This item number is: ${item.number}`)
  }
}

returnItems(arr);

这大大简化了

我以连接结束。

const arr = [{ number: 1, color: "red"   },
             { number: 2, color: "green" },
             { number: 3, color: "blue"  }];

// const valueList = list => list.map(({number,color}) => ({ number, color})); // not used
const printItems = arr => arr.map(item => `This item color is: ${item.color} This item number is: ${item.number}`);
console.log(printItems(arr).join("\n"));

console.log 将在每次迭代期间 运行 所以它多次将日志输出到控制台是有意义的。相反,您可以将所有内容存储在一个字符串中,然后像这样输出该字符串。

let message = ''
for (const item of emptyArray) {
    message += `This item color is: ${item.color} This item number is: ${item.number}\n`
}
console.log(message)

您需要将它们全部保存在一个变量中,最后 console.log 该变量一次。

const printItems = (emptyArray) => {
  let result = ``;
  for (const item of emptyArray) {
    result += `This item color is: ${item.color} This item number is: ${item.number}
`;
  }
  console.log(result);
}