2016-05-03 5 views
2

Ich bin Anfänger in Javascript und ich habe ein Problem, eine Zeichenfolge in ein Array von int zu konvertieren. finde ich für diesen FallKonvertieren einer Koordinate in Zeichenfolge im Array int

var string = "[1,2,3,4]"; 

aber nicht für diese:

var string = "[[1,2],[1,2]]"; 

Und die gleiche Syntax dieser

var result = [[1,2],[1,2]]; 

result = [[1,2],[1,2]]; 
+3

'JSON.parse' sollte beide behandeln. Vielleicht könnte die Frage klarer sein. Was ist Ihre erwartete Ausgabe für 'var string =" [1,2,3,4] ";' – ArcSine

+0

Ich habe eine Zeichenfolge: var string = "[[1,2], [1,2]]"; und ich würde dies ergeben: result = [[1,2], [1,2]]; –

+2

'JSON.parse' wird dies in die erwartete Ausgabe konvertieren. – ArcSine

Antwort

2

Versuchen haben:

var 
    str = '[[1,2],[3,4]]', 
    result; 

result = JSON.parse(str); 

result[0] // [1, 2] 
result[1] // [3, 4] 

result[0][0] // 1 
result[1][1] // 4 

Read more about JSON.parse()

Ich empfehle Ihnen nicht, eval() Funktion zu verwenden.

Object-Oriented JavaScript - Second Edition: eval() kann nützlich manchmal sein, sollte aber vermieden werden, wenn es andere Optionen gibt. Die meisten von die Zeit gibt es Alternativen, und in den meisten Fällen sind die Alternativen eleganter und einfacher zu schreiben und zu pflegen. "Eval ist böse" ist ein Mantra, das Sie oft von erfahrenen JavaScript-Programmierern hören können. Die Nachteile der Verwendung von eval() sind:

Sicherheit - JavaScript ist leistungsstark, was auch bedeutet, dass es Schäden verursachen kann. Wenn Sie der Quelle der Eingabe nicht vertrauen, die Sie an eval() übergeben, verwenden Sie einfach nicht.

Leistung - Es ist langsamer zu bewerten "Live" -Code als den Code direkt im Skript zu haben.

Verwandte Themen