Ich lese einen Wert aus einer Dropdown-Liste, je nachdem, welche Option ausgewählt ist. Ich benutze jqPlot, um die Werte grafisch darzustellen.

JqPlot erwartet ein Array von Werten wie [91, 6, 2, 57, 29, 40, 95]

Aber wenn ich den Wert aus dem Dropdown-Feld einlese, kommt er als ganze Zeichenfolge "[91, 6, 2, 57, 29, 40, 95]"

Ich habe versucht, es zu teilen, aber ich habe ["91", "6", "2", "57", "29", "40", "95"], das das Diagramm nicht richtig anzeigt.

Gibt es jemanden, der so etwas schon einmal erlebt hat und was kann ich tun, um meine Werte in ein Zahlenarray umzuwandeln?

Danke für jede Hilfe

0
Wesley Skeen 9 Okt. 2012 im 13:33

4 Antworten

Beste Antwort

Sie können JSON.parse() verwenden, um diese Zeichenfolge in ein JavaScript-Array zu konvertieren. Die Zahlen in der Zeichenfolge werden nicht in Anführungszeichen gesetzt, sodass das Array auch Zahlen enthält. Und Sie können den gesamten Code löschen, der die Zeichenfolge analysiert, da Sie ihn nicht mehr benötigen.

>>> JSON.parse("[91, 6, 2, 57, 29, 40, 95]")
[91, 6, 2, 57, 29, 40, 95]

Wenn Sie ältere Browser unterstützen müssen, fügen Sie json2.js hinzu Shim JSON-Unterstützung in Browsern, die es nicht nativ unterstützen.

5
ThiefMaster 9 Okt. 2012 im 09:35

Mit JSON.parse können Sie die Zeichenfolge "[91, 6, 2, 57, 29, 40, 95]" in ein Array ändern:

​(function(){
    var a = '[1,2,3]';
    var b = JSON.parse('[1,2,3]');
    alert(b +'\n'+ typeof(b)+'\n'+ b[0] );
})()​

Demo

2
Alberto De Caro 9 Okt. 2012 im 09:40

Sie können verwenden

str.slice(1, -1).split(',').map(function(s){return parseInt(s, 10);});
1
Denys Séguret 9 Okt. 2012 im 09:35

Während Sie jQuery verwenden, können Sie dies tun

$.parseJSON("[91, 6, 2, 57, 29, 40, 95]");
2
Diode 9 Okt. 2012 im 09:51