如何在javascript中加载二维数组

如何在javascript中加载二维数组,javascript,arrays,Javascript,Arrays,我有一个字符串,其中包含以下格式的许多行: 我知道如何使用以下方法将每条线加载到阵列单元中: var arrayOfStuff = stringOfStuff.split("\n"); 但是上面每行做一个数组,我需要一个二维数组。 是否有一种方法可以做到这一点,即使用与上述类似的逻辑,而无需重新读取和处理阵列。我知道如何分两个阶段完成,但我更愿意一步完成。 提前感谢, 克里夫不太可能。没有返回二维数组的本机javascript函数。听起来您希望类似Python的列表理解(例如,[li


我有一个字符串,其中包含以下格式的许多行:



我知道如何使用以下方法将每条线加载到阵列单元中:

var arrayOfStuff = stringOfStuff.split("\n");  
但是上面每行做一个数组,我需要一个二维数组。 是否有一种方法可以做到这一点,即使用与上述类似的逻辑,而无需重新读取和处理阵列。我知道如何分两个阶段完成,但我更愿意一步完成。
提前感谢,

克里夫

不太可能。没有返回二维数组的本机javascript函数。

听起来您希望类似Python的列表理解(例如,
[line.split(“”)表示line-in-line.split(“\n”)]
),但javascript没有这样的功能。在Javascript中获得相同结果的最简单方法是使用循环:

var lines = lines.split("\n");

for (var i = 0; i < lines.length; i++) {
    lines[i] = lines[i].split(" ");

    // or alternatively, something more complex using regexes:
    var match = /<([^>]+)><([^>]+)>/.exec(lines[i]);
    lines[i] = [match[1], match[2]];
}
var lines=lines.split(“\n”);
对于(变量i=0;i]+)>/.exec(行[i]);
行[i]=[匹配[1],匹配[2]];
}

例如,如果您想解析CSV,您可以这样做

var parsedStuff = [];
stringOfStuff.replace(/\r\n/g, '\n')  // Normalize newlines
    // Parse lines and dump them in parsedStuff.
    .replace(/.*/g, function (_) { parsedStuff.push(_ ? _.split(/,/g)) : []; })
运行

stringOfStuff = 'foo,bar\n\nbaz,boo,boo'
var parsedStuff = [];
stringOfStuff.replace(/\r\n/g, '\n')
    .replace(/.*/g, function (_) { parsedStuff.push(_ ? _.split(/,/g)) : []; })
JSON.stringify(parsedStuff);
输出

[["foo","bar"],[],["baz","boo","boo"]]

您可以调整
/,/
以适应您使用的任何记录分隔符。

您可以提供一个您试图解析的数据集示例,以及所需的结果吗?我会的,但此注释块不允许我添加返回。您可以编辑您的问题并将其放在那里。尽管可以在javascript中执行多维数组。。。使用对象不是更正确吗?是的,这个循环将产生一个二维数组。将其存储为数组或对象数组是否更有意义,这一点在简短的回答中难以涵盖。:-)是 啊这就是我所说的两阶段方法。。。我希望有一个。。。但是哦,好吧。。。谢谢