在.javascript中将.txt文件拆分为数组

时间:2015-04-22 06:05:21

标签: javascript arrays text split

所以我有一个包含信息行的文本文件,每行需要存储几个数据,我需要存储在一个数组数组中。

当它们在空格或逗号上分割时很简单,但是对于这个特定文件,某些数据在单个数据字段中有空格。

例如

123 4325 Hello World 43

394 3892你好23岁

任何人都知道如何将每一行分成4个字符串,其中包含“Hello World”和“你好吗”?

即:数组[0] = [123,4325,Hello World,43]和数组[1] = [394,3892,你好,23]

抱歉,我对JS很新,所以我不确定是否有一个简单的回答让我盯着我。

由于

3 个答案:

答案 0 :(得分:2)

遵循类似的工作流程。

  1. 选择一条线,按空格分割。
  2. e.g。 " 345 578这是一篇文字585" - > [" 345"," 578","这",""," a","文本"" 585"]

    1. 将前两个元素放入数组中。
    2. e.g。 [" 345"," 578","这",""," a"," text"," 585"] - > [" 345"," 578"] ["这",""," a",&#34 ;文本"" 585"]

      1. 将最后一个元素移除到单独的arr。
      2. e.g。 [" 345"," 578"] ["这",""," a",&#34 ; text"] [" 585"]

        1. 将中间数组与空格合并。
        2. e.g。 [" 345"," 578"] ["这是一个文字"] [" 585"]

          1. 合并所有数组。
          2. e.g。 [" 345"," 578","这是一个文字"," 585"]

            多田!

答案 1 :(得分:0)

您可以使用名为FileReader的JavaScript API。 您可以在Google中搜索它。 它只能使用JS读取文件。 然后你可以使用

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

用新行分隔内容。

答案 2 :(得分:0)

虽然它并不复杂,但你想要的东西也不会出现在javascript框中。这意味着有数百种方法可以解决这个问题。我建议您根据“软”要求选择。

代码需要多快?理解代码有多容易?您是否还需要确定每个值的格式(即第一个值是数字而第三个是字符串)?

如果您需要检查格式(我在大多数时候都会找到),我建议使用正则表达式。有很多例子,对于SO来说这将是一个不同的问题。

作为您在此处提到的具体问题的解决方案,以下是我更喜欢的解决方案:

function breakByPosition(str, positions) {
    var start = 0;
    var result = [];
    while (positions.length) {
        // splice returns the removed values as an array
        // It also modified the source array in place
        var position = positions.splice(0, 1);
        var substring = str.substring(start, position);
        // The OP wants by position but apparently not the spaces
        // Could be replaced by if (substring !== ' ') depending on needs
        if (substring.trim() !== '') {
            result.push(substring);
        }
        start = position;
    }
    return result;
}

breakByPosition('123 4325 Hello World 43', [3, 4, 8, 9, 20, 21, 23]);

返回:

  

[“123”,“4325”,“Hello World”,“43”]