Javascript 将程序的输出流转换为数组
我有一个程序的输出流,其中包含可用打印机的列表,我想将其转换为数组 这是我的标准:Javascript 将程序的输出流转换为数组,javascript,node.js,Javascript,Node.js,我有一个程序的输出流,其中包含可用打印机的列表,我想将其转换为数组 这是我的标准: OneNote Microsoft XPS文档编写器 Microsoft打印到PDF 传真 我正在寻找一个解决方案,它将给我: ['OneNote', 'Microsoft XPS Document Writer', 'Microsoft Print to PDF', 'Fax'] 我尝试了stdout.split('\n'),但它变了 [ 'OneNote
OneNote
Microsoft XPS文档编写器
Microsoft打印到PDF
传真
我正在寻找一个解决方案,它将给我:
['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\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输入=
`
OneNote
Microsoft XPS文档编写器
Microsoft打印到PDF
传真
`
常量输出=
input.trim().split(/\s*[\r\n]+\s*/)
console.log(输出)
// [
//“OneNote”,
//“Microsoft XPS文档编写器”,
//“Microsoft打印到PDF”,
//“传真”
//]
trim()
在拆分字符串之前先删除它