2012-06-11 15 views
7

पर सरणी के प्रत्येक तत्व को दिखाने के लिए कैसे करें मेरे पास एक स्ट्रिंग बिल्ड फॉर्म अल्पविराम से अलग मूल्य है I प्रत्येक मान प्राप्त करने के लिए split का उपयोग करता हूं और उसके बाद मैं प्रत्येक मान को एक नई लाइन पर दिखाना चाहता हूं लेकिन वास्तव में क्या होता है मुझे एक ही पंक्ति पर एक साथ दिखाए गए अंतिम दो को छोड़कर एक नई लाइन पर प्रत्येक मान मिलता है। बस इसे स्पष्ट करना:जावास्क्रिप्ट एक नई लाइन

मान 1

, value2

, VALUE3

, VALUE4, value5

यहाँ समारोह जो मैं उपयोग कर रहा हूँ है:

_checkDates: function(dates) { 
     if (dates != null) 
     { 
      var zzz = dates.split(','); 
      var xxx = zzz.length; 
      console.log(xxx); 
      for (var i=0; i<=xxx; i++) 
       { 
        zzz[i] = zzz[i] + '<br />'; 
        return zzz; 
       } 
     } 
     return dates; 
    } 

यह स्पष्ट करने के लिए कि यह ExtJS 4 में लिखा गया है, मुझे पूरा यकीन है कि इस मामले में समस्या शुद्ध जावास्क्रिप्ट है और ExtJS 4 से संबंधित नहीं है लेकिन वैसे भी, शायद मैं गलत हूं।

तो कोई विचार क्यों होता है और मैं एक आखिरी ग्यारह को नई लाइन पर कैसे प्राप्त कर सकता हूं?

धन्यवाद

के लिए लूप Leron

+0

कारण है कि आप में लूप के लिए आर बराबर चिह्न है। यह तब कम होना चाहिए। जैसे। यदि ज़ज़ की लंबाई 5 (xxx = 5) है, तो आप 0 से 4 तत्वों को मानना ​​चाहते हैं, मान 1 अनुक्रमणिका = 0, मान 2 अनुक्रमणिका = 1, मान 3 अनुक्रमणिका = 2, मान 4 अनुक्रमणिका = 3 और value5 अनुक्रमणिका = 4। वर्तमान में आप 0 से 5 कर रहे हैं क्योंकि लूप 5 से 4 तक पहुंचने के बाद निकलता है। इस प्रकार आप zzz [5] तक पहुंचने का प्रयास कर रहे हैं जिसका कोई मूल्य नहीं है। – GreenGiant

+0

मुझे पता है, लेकिन मैंने '<' और '<=' के साथ भी कोशिश की है '==' यह काम नहीं किया है। मुझे कारण नहीं पता कि '
'टैग असाइन नहीं किया गया है, वास्तव में यही कारण है कि मैं सवाल पोस्ट करता हूं।नीचे स्टीफन का जवाब मेरी वर्तमान समस्या को हल करता है लेकिन अगर कोई मुझे बताएगा कि मेरी स्क्रिप्ट में गलती कहां है और ठीक से काम करने के लिए इसे कैसे संशोधित किया जाए तो मैं आभारी रहूंगा। – Leron

उत्तर

7

संदिग्ध है। सबसे पहले, आप सभी वस्तुओं को संसाधित नहीं करते हैं (आखिरी में गायब है, क्योंकि @ सरफ्राज़ ने बताया)। Sencondly आप के लिए लूप शरीर में परिणाम (zzz) लौट रहे हैं:

for (var i=0; i<=xxx; i++) 
{ 
    zzz[i] = zzz[i] + '<br />'; 
    return zzz; // for-loop will stop here! resulting in ["value1<br />", "Value2", etc...] 
} 

Javscript में आप सरल सरणी "में शामिल होने" कर सकते हैं:

return dates.split(',').join("<br />") 

के बाद से आप बस आप इस्तेमाल कर सकते हैं तार स्थान ले रही हैं replace विधि:

return dates.replace(",", "<br />"); 
+2

'वापसी तिथियां.split (',')। शामिल हों ("
") '- बिल्कुल मुझे क्या चाहिए। धन्यवाद। – Leron

11

मैं पहले से ही अपने समारोह बिट cleaner.since संशोधित किया है स्टीफन अपनी गलती का उल्लेख किया।

function splitDate(dates) { 
     if (dates != null) 
     { 
      var dates = dates.split(','); 
      var xxx = dates.length; 
      console.log(xxx); 
      for (var i=0; i<xxx; i++) 
       { 
        dates[i] = dates[i];      
       } 
     } 
     console.log(dates.join('\r\n')); 
     return dates.join('\r\n');   
    } 

ऊपर समारोह आप एक पंक्ति में कर सकते हैं:

अगर यह एक सरणी आप निम्नलिखित तरीके से नई लाइन में विभाजित कर सकते हैं:

var arr = ['apple','banana','mango']; 
console.log(arr.join('\r\n')); 

अगर यह एक है स्ट्रिंग:

var str = "apple,banana,mango"; 
console.log(str.split(',').join("\r\n")); 
+0

आप 'console.log (arr.join ('
') कर सकते हैं;' ' –

संबंधित मुद्दे