如何在数组中的 javascript 字符串中添加制表符

How to add a tab in a javascript string within an array

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

您可以使用正则表达式 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+/)));

你不能用实际的制表符替换它吗?

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"))