在javascript中将字符串转换为二维数组

时间:2011-03-02 05:24:42

标签: javascript arrays string multidimensional-array

我正在尝试转换像"10|15|1,hi,0,-1,bye,2"这样的字符串,其中前两个元素10|15表示与1,hi,0,-1,bye,2不同的字符。我想将它们彼此分开。一个天真的方法是:

value = string.split("|");
var first = value[0];
var second = value[1];
var tobearray = value[2];
array = tobearray.split(",");

(当然,如果你知道如何以更好的方式做到这一点,我会很高兴知道)。 但是,array是一个包含array[0]=1, array[1]=hi, array[2]=0, array[3]=-1等的数组。但是,我想获得一个二维数组,如

array[0][0]=1, array[0][1]=hi, array[0][2]=0
array[1][0]=-1, array[1][1]=bye, array[1][2]=2

有没有办法做到这一点?

由于

3 个答案:

答案 0 :(得分:16)

可以预先提取前两个元素(10|15)。之后你就离开了:

var a = "1,hi,0,-1,bye,2";

让我们拼接直到我们没有任何东西:

var result = [];

a = a.split(','); 

while(a[0]) {
    result.push(a.splice(0,3));
}

result; // => [["1","hi","0"],["-1","bye","2"]]

答案 1 :(得分:3)

function getMatrix(input_string) 
{
    var parts = input_string.split('^');
    for (var t=0; t<parts.length; t++)
    {
        var subparts = parts[t].split('*');

        parts[t] = subparts.splice(0,subparts.length);              
    }

    return parts;
}

答案 2 :(得分:2)

function getMatrix(input_string) {
    var parts = input_string.split('|');
    var subparts = parts.pop().split(',');
    var partlen = subparts.length / parts.length;
    for (var i=0; i<parts.length; i++) {
        parts[i] = subparts.splice(0,partlen);
    }
    return parts;
}