2012-08-02 14 views
13

ich habe eine ZeichenfolgeJavascript/Jquery konvertieren String Array

var traingIds = "${triningIdArray}"; // ${triningIdArray} this value getting from server 
alert(traingIds) // alerts [1,2] 
var type = typeof(traingIds) 
alert(type) // // alerts String 

jetzt Ich will das Array konvertieren, so dass ich

i

versucht laufen kann
var trainindIdArray = traingIds.split(','); 
$.each(trainindIdArray, function(index, value) { 
    alert(index + ': ' + value); // alerts 0:[1 , and 1:2] 
}); 

wie zu lösen Dies?

Antwort

11

Unter der Annahme, wie es scheint der Fall zu sein, ${triningIdArray} ist eine serverseitige Platzhalter, der mit JS-Array Literalsyntax ersetzt wird, nur die Zitate verlieren. Also:

var traingIds = ${triningIdArray}; 

nicht

var traingIds = "${triningIdArray}"; 
4

ändern

var trainindIdArray = traingIds.split(',');

zu

var trainindIdArray = traingIds.replace("[","").replace("]","").split(',');

, die im Grunde [ und ] entfernen wird und spaltete dann die Zeichenfolge

54

Da Arrayliteral Notation noch gültig JSON ist, Sie kann use JSON.parse() konvertiert werden Diese Zeichenfolge in ein Array und von dort aus, verwenden Sie ihre Werte.

var test = "[1,2]"; 
parsedTest = JSON.parse(test); //an array [1,2] 

//access like and array 
console.log(parsedTest[0]); //1 
console.log(parsedTest[1]); //2 
+0

, was gut ist ... ich wusste nie. danke – maverickosama92

+0

Netter Ansatz ... – RubyOnRails

3

check this out :)

var traingIds = "[1,2]"; // ${triningIdArray} this value getting from server 
alert(traingIds); // alerts [1,2] 
var type = typeof(traingIds); 
alert(type); // // alerts String 

//remove square brackets 
traingIds = traingIds.replace('[',''); 
traingIds = traingIds.replace(']',''); 
alert(traingIds); // alerts 1,2   
var trainindIdArray = traingIds.split(','); 

​for(i = 0; i< trainindIdArray.length; i++){ 
    alert(trainindIdArray[i]); //outputs individual numbers in array 
    }​ 
+1

Sie können Eval verwenden. z.B. eval ("[1,2]") # => [1,2] –

+0

Es überrascht mich @Sam Kah Chiins Kommentar ist keine Antwort. Es ist wirklich sehr viel zu dieser Frage. es ist einfach liniert und einfach. Danke –

+1

@YoungMillie, tatsächlich mit 'eval' in Javascript kann gefährlich sein, da unsachgemäße Verwendung von eval Ihren Code für Injektionsangriffe öffnet. Überprüfen Sie dies [stackoverflow] (https://stackoverflow.com/questions/86513/why-is-using-the-jascript-eval-function-a-bad-idea) :) –

Verwandte Themen