gpt4 book ai didi

Javascript 从多行字符串中删除前导和尾随空格,并用逗号替换其余的空白 block

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:01:12 26 4
gpt4 key购买 nike

我怎样才能转换这个文本

data=`ID   ra      dec     V       VR      MJD
100 30.1 +15 7.00 -10 2450000.1234
200 30.2 +16 12.226 -5.124 2450000.2345
300 30.3 +17 13.022 12.777 2450000.3456


400 30.4 +18 14.880 13.666 2450000.6789
500 30.5 +19 12.892 -1.835 2450001
600 30.6 +20 17.587 15.340 2450002.123
700 30.7 +21 13.984 13.903 2450000.123456
800 30.8 +22 20.00 10.000 2450003.0 `

即导入的多行多列的文本,由空格和制表符分隔,

ID,ra,dec,V,VR,MJD
100,30.1,+15,7.00,-10,2450000.1234
200,30.2,+16,12.226,-5.124,2450000.2345
300,30.3,+17,13.022,12.777,2450000.3456


400,30.4,+18,14.880,13.666,2450000.6789
500,30.5,+19,12.892,-1.835,2450001
600,30.6,+20,17.587,15.340,2450002.123
700,30.7,+21,13.984,13.903,2450000.123456
800,30.8,+22,20.00,10.000,2450003.0

不幸的是,

  • 这个正则表达式 data=data.replace(/^\s+|\s+$/g,'').replace(/[\t\r]+/g,','); 仅适用于第一行,
  • 这个 data.replace(/[^\S\r\n]+$/gm, "").replace(/[\t\r]+/g,',');可以,但仅用于跟踪。

额外: 我如何将它转换为 json 将两个 block 分成两个数据集,例如 [[{id:..., ra :...},{},{}],[{id:..., ra:...},{},{}]]

最佳答案

使用 split/join 和 trim 进行字符串转换可能会更容易:

data
.split(/\r?\n/)
.map(row => row.trim().split(/\s+/).join(','))
.join('\n')

额外的学分涉及更多。 :)

const rows = data.split(/\r?\n/).map(row => row.trim().split(/\s+/).join(','));
const keys = rows.shift().split(',');
const chunks = rows.join("\n").split(/\n{2,}/);

const output = chunks .map(chunk => chunk.split("\n").map(
row => row.split(',').reduce((obj, v, i) => {
obj[keys[i]] = v;
return obj;
}, {})
));

关于Javascript 从多行字符串中删除前导和尾随空格,并用逗号替换其余的空白 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37754444/

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