字符串操作

时间:2015-09-03 01:01:53

标签: javascript arrays string

我有一个格式如下的文本文件:

1 50 20
2 23 22
3 45 90
4 44 49
.. .. ..
10 22 21

我希望将数字存储到数组中。但我想丢弃计数器并将第二列存储在一个数组中,将第三列存储在另一个数组中。 我把每一行都读成一个字符串,我不知道怎样才能得到最后两列。

我首先使用拆分:

string.split(" "); 

但它不按我想要的方式工作。我尝试使用切片,但因为我在计数器中有两位数字,所以它不起作用。反正有没有修改拆分方法?或者带有更多字符串操作工具的JS库?感谢

编辑:那么什么对拆分不起作用:

for (var i=7; i<linecount-1 ; i++){
            xcord.push(lines[i].split(" ")); 

如果一行包含1 50 20,如果我使用split,则得到1,50,20。问题是如何在xcord数组中获得50。

2 个答案:

答案 0 :(得分:2)

对于每一行,使用.split()获取三个元素的临时数组,项目编号和其他两个数字,因此第一行将是[1,50,20]。然后从临时数组中取出第二个和第三个元素并将它们推送到其他数组中:

for (var line, i=7; i<linecount-1 ; i++){
    line = lines[i].split(" ");
    xcord.push(line[1]);
    ycord.push(line[2]);
}

(你的问题目前没有显示你的第二个数组,但我假设第一个是xcord,那么另一个是ycord。)

答案 1 :(得分:2)

.split(" ")将返回每行中三个值的数组。您可以访问该数组并获取所需的三个值中的任何一个。该行中的第二个数字将位于数组的[1]元素中。该行中的第三个数字将位于数组的[2]元素中。您可以忽略数组的[0]元素中的计数器。

你可以这样做:

for (var i=7; i<linecount-1 ; i++){
    var values = lines[i].split(" ");     // this will be an array like [1,50,20]
    xcord.push(values[1]);                // get the xcord from the array
    ycord.push(values[2]);                // get the ycord from the array
}