微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法在一行中从 for 循环返回所有控制台日志?

如何解决有没有办法在一行中从 for 循环返回所有控制台日志?

我不知道如何提问。

我想要实现的是这个。

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);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。