所以我有一个包含信息行的文本文件,每行需要存储几个数据,我需要存储在一个数组数组中。
当它们在空格或逗号上分割时很简单,但是对于这个特定文件,某些数据在单个数据字段中有空格。
例如
123 4325 Hello World 43
394 3892你好23岁
任何人都知道如何将每一行分成4个字符串,其中包含“Hello World”和“你好吗”?
即:数组[0] = [123,4325,Hello World,43]和数组[1] = [394,3892,你好,23]
抱歉,我对JS很新,所以我不确定是否有一个简单的回答让我盯着我。
由于
答案 0 :(得分:2)
遵循类似的工作流程。
e.g。 " 345 578这是一篇文字585" - > [" 345"," 578","这",""," a","文本"" 585"]
e.g。 [" 345"," 578","这",""," a"," text"," 585"] - > [" 345"," 578"] ["这",""," a",&#34 ;文本"" 585"]
e.g。 [" 345"," 578"] ["这",""," a",&#34 ; text"] [" 585"]
e.g。 [" 345"," 578"] ["这是一个文字"] [" 585"]
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”]