猿问

将带有换行符和空格的输入拆分为数字数组,使数组末尾有额外的0

我有一些输入看起来像:


2

2 2

2

2 0

0 5

3 3

3 5

1 1 1

3 0 0

1 10 0

最后加上(有时)换行符。我已使用var b = this.data.replace(/\n/g, " ").split(/[\s,]+/).map(Number);上述输入存储在的位置将数据拆分为数字数组this.data。并且b是新数组。如果末尾没有换行符,则可以正常工作。但是,如果结尾处有换行符,那么结尾处将额外加一个0。似乎正在发生以下情况:

  • \n 字符被空格替换

  • 列表在空格上分割-当\n结尾处有一个时,此列表的末尾有一个(空白)元素

  • map(Number)将最后一个(空)元素解释为0

如何防止这种情况发生?


米琪卡哇伊
浏览 203回答 3
3回答

哆啦的时光机

在使用字符串之前先修剪()字符串trim()方法从字符串的两端删除空格。在这种情况下,空白是所有空白字符(空格,制表符,不间断空格等)和所有行终止符(LF,CR等)。const str = `22 222 00 53 33 51 1 13 0 01 10 0`const result = str.trim().split(/\s|\n/).map(Number)console.log(result)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答