2012-08-02 11 views
13

में कनवर्ट स्ट्रिंग मैं एक स्ट्रिंगजावास्क्रिप्ट/jQuery सरणी

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

है अब मैं सरणी में बदलने के लिए इतना है कि मैं

पुनरावृति कर सकते हैं मैं

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

की कोशिश की कैसे हल करना चाहते हैं इस?

उत्तर

11

मान लिया जाये, जैसा भी मामला प्रतीत हो रहा है, ${triningIdArray} सर्वर की ओर से प्लेसहोल्डर कि जे एस सरणी-शाब्दिक वाक्य रचना साथ बदल दिया है, बस उद्धरण खो देते हैं। तो:

var traingIds = ${triningIdArray}; 

नहीं

var traingIds = "${triningIdArray}"; 
4

बदलें

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

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

वह मूल रूप से [ और ] निकाल देंगे करने के लिए और फिर स्ट्रिंग विभाजित

54

के बाद से शाब्दिक शृंखला अंकन अभी भी मान्य JSON, आप है कनवर्ट करने के लिए use JSON.parse() कर सकते हैं वह एक सरणी में स्ट्रिंग करता है, और वहां से, इसके मानों का उपयोग करें।

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

कि अच्छा है ... मैं कभी नहीं जानता था कि। धन्यवाद – maverickosama92

+0

अच्छा दृष्टिकोण ... – RubyOnRails

3

जांच यह पता :)

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

आप eval का उपयोग कर सकते हैं। जैसे। eval ("[1,2]") # => [1,2] –

+0

यह मुझे आश्चर्यचकित करता है @ सैम कह चीन की टिप्पणी एक जवाब नहीं है। यह वास्तव में इस सवाल का एक बड़ा सौदा है। यह सिंगल लाइन और सरल है। धन्यवाद –

+1

@YoungMillie, वास्तव में जावास्क्रिप्ट में 'eval' का उपयोग करना खतरनाक हो सकता है क्योंकि eval के अनुचित उपयोग इंजेक्शन हमलों के लिए आपके कोड को खोलता है। यह जांचें [stackoverflow] (https://stackoverflow.com/questions/86513/why-is-using-the-javascript-eval-function-a-bad-idea) :) –