0

我一直在尝试设置一个单元测试,它基本上测试我从其他地方的文件中读取的内容是否被正确解析。我不想在这个单元测试中读取文件,所以我创建了一个包含信息的数组。但是无论我尝试什么,空格都会转换为'\ t'。

let mgfSection = 
[
    "BEGIN IONS",
    "PEPMASS=491.222686767578",
    "CHARGE=2",
    "TITLE=491.222686767578_1494.17_scan=6268_2014090922Mix2alkylISW10noEclu,seq={ATNYNAGDR},sup={4}",
    "SCANS=0",
    "491.2227\u00092",
    "128.1677\t34.3",
    "143.9659   14.8",
];

上面的数组在打印到控制台时直接在我期望制表符 (5-7) 的所有位置产生 '\t'。但是,它实际上是 '\t' 而不是制表符,因此我无法对其进行拆分(mgfSection[6].split("\t") 不起作用)。另一方面,它在从文件中读取时会起作用,所以我不能使用 ("\t") 来让我的测试工作。

我该怎么做才能让空白显示为下游函数的真实空白?

谢谢你,延斯

顺便说一句,我正在 AWS Cloud9 上开发。

4

2 回答 2

2

你不能用实际的标签字符替换它吗?

let mgfSection = 
    [
        "BEGIN IONS",
        "PEPMASS=491.222686767578",
        "CHARGE=2",
        "TITLE=491.222686767578_1494.17_scan=6268_2014090922Mix2alkylISW10noEclu,seq={ATNYNAGDR},sup={4}",
        "SCANS=0",
        "491.2227\u00092",
        "128.1677\t34.3",
        "143.9659   14.8",
    ].map((d)=>d.replace("\\t","\t"))
于 2019-02-18T12:25:13.693 回答
1

您可以使用正则表达式split

let mgfSection = 
[
    "BEGIN IONS",
    "PEPMASS=491.222686767578",
    "CHARGE=2",
    "TITLE=491.222686767578_1494.17_scan=6268_2014090922Mix2alkylISW10noEclu,seq={ATNYNAGDR},sup={4}",
    "SCANS=0",
    "491.2227\u00092",
    "128.1677\t34.3",
    "143.9659   14.8",
];

console.log(mgfSection.map(str => str.split(/\s+/)));

于 2019-02-18T12:24:28.737 回答