gpt4 book ai didi

javascript - 将程序的输出流转换为数组

转载 作者:行者123 更新时间:2023-11-30 19:30:08 26 4
gpt4 key购买 nike

我有一个包含可用打印机列表的程序的输出流,我想将其转换为数组。

这是我的标准输出:


OneNote

Microsoft XPS Document Writer

Microsoft Print to PDF

Fax



我正在寻找一个解决方案,它将给我:

['OneNote', 'Microsoft XPS Document Writer', 'Microsoft Print to PDF', 'Fax']

我试过stdout.split('\n'),但是变成了

[
'OneNote \r\r',
'Microsoft XPS Document Writer \r\r',
'Microsoft Print to PDF \r\r',
'Fax \r\r',
'\r\r',
''
]

然后我尝试了 stdout.split('\r\r\n') 并且它变成了

[
'OneNote ',
'Microsoft XPS Document Writer ',
'Microsoft Print to PDF ',
'Fax ',
'',
''
]

现在我可以删除字符串末尾的空格 stdout.split('\r\r\n').map(printer => printer.trim()) 但我仍然需要过滤掉最后两个空字符串,所以我想知道是否有更好/优雅的方法来解决这个问题?

stdout.split('\r\r\n')
.map(printer => printer.trim())
.filter(printer => Boolean(printer.length))

最佳答案

您可以使用正则表达式 -

input.trim().split(/\s*[\r\n]+\s*/)

在下面的完整程序中查看它的工作情况 -

const input = 
`
OneNote

Microsoft XPS Document Writer

Microsoft Print to PDF

Fax
`

const output =
input.trim().split(/\s*[\r\n]+\s*/)

console.log(output)
// [
// "OneNote",
// "Microsoft XPS Document Writer",
// "Microsoft Print to PDF",
// "Fax"
// ]

正则表达式针对任何由可选空格包围的回车 \r 和/或换行符 \n。可以理解为——

  • \s* - 零个或多个空格,后跟
  • [\r\n]+ - 一个或多个\r\n,后跟
  • \s* - 零个或多个空格

关于javascript - 将程序的输出流转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56509113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com