6 Stimmen

Umwandlung einer Zeichenkette in ein zweidimensionales Array in Javascript

Ich versuche, eine Zeichenfolge wie diese zu konvertieren "10|15|1,hi,0,-1,bye,2" wobei die ersten beiden Elemente 10|15 etwas anderes bedeuten als 1,hi,0,-1,bye,2 . Ich würde sie gerne voneinander trennen. Ein naiver Weg, dies zu erreichen, wäre:

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

(Wenn Sie natürlich wissen, wie man das besser machen kann, würde ich mich freuen, das zu erfahren). Wie auch immer, array ist ein Array, das Folgendes enthält array[0]=1, array[1]=hi, array[2]=0, array[3]=-1 , usw. Ich möchte jedoch ein zweidimensionales Array erhalten, z. B.

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

Gibt es eine Möglichkeit, das zu tun?

Danke

16voto

James Punkte 106202

Die ersten beiden Elemente ( 10|15 ) können vorher extrahiert werden. Danach bleibt Ihnen nur noch Folgendes übrig:

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

Lasst uns Spleiß bis wir nichts mehr haben:

var result = [];

a = a.split(','); 

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

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

3voto

Abdel1 O. Punkte 39
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;
}

2voto

kojiro Punkte 70709
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;
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X