2012-08-02 20 views
13

dize dönüştürme i iJavaScript/jQuery diziye

yineleme böylece i nasıl çözmek için

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

çalıştı diziye bu dönüştürmek istediğiniz anda bir dize

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

var bu?

cevap

11

, ${triningIdArray} sadece tırnak kaybetmek, JS dizi-değişmezi sözdizimi ile değiştirilir bir sunucu tarafı tutucudur. Yani:

var traingIds = ${triningIdArray}; 

değil

var traingIds = "${triningIdArray}"; 
4

Değişim

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

temelde [ ve ] kaldıracaktır

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

ve daha sonra dize bölmek

54

dizisi değişmezi gösterimi hala geçerli JSON, sen olduğundan dönüştürmek için use JSON.parse() olabilir Bu diziyi bir diziye sokar ve buradan o değerleri kullanır. vaka gibi görünüyor gibi varsayarsak

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

... ben hiç bilmiyordum. teşekkürler – maverickosama92

+0

Güzel yaklaşım ... – RubyOnRails

3

onay bunu :) iyidir

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

Değerlendirmeyi kullanabilirsiniz. Örneğin. eval ("[1,2]") # => [1,2] –

+0

Beni şaşırtıyor @Kam Kah Chiin 'in yorumu bir cevap değil. Bu soru için gerçekten çok önemli. Tek sıralı ve basittir. Teşekkürler –

+1

@YoungMillie, aslında javascript'te "eval" kullanırken, eval'ın uygunsuz kullanımı kodunuzu enjeksiyon saldırıları için açtığınız için tehlikeli olabilir. Bunu kontrol edin [stackoverflow] (https://stackoverflow.com/questions/86513/why-is-using-the-javascript-eval-function-a-bad-idea) :) –