2010-11-10 17 views

उत्तर

496

आप सादे जावास्क्रिप्ट में ऐसा कर सकते हैं, Array.prototype.join का उपयोग करें:

arrayName.join(delimiter) 

मैं किसी भी jQuery समारोह है कि किसी भी बेहतर है के बारे में पता नहीं है।

+0

@jball सुधार के लिए धन्यवाद –

+3

क्या मॉडरेटर बल इस उत्तर को स्वीकार कर सकता है या कुछ इसे शीर्ष पर कैसे बना सकते हैं? मैंने इस जवाब को शुरुआत में पढ़ा। – PressingOnAlways

+0

@PressingOnAlways धन्यवाद भलाई मॉडरेटर दस्तावेज को जोड़ने के लिए – Andrew

26

Array.join आपको जो चाहिए वह है, लेकिन यदि आपको पसंद है, तो phpjs.org पर दोस्ताना लोगों ने आपके लिए implode बनाया है।

फिर थोड़ा सा विषय ranting। जैसा कि @jon_darkstar alreadt ने इंगित किया है, jQuery जावास्क्रिप्ट है और इसके विपरीत नहीं है। जावास्क्रिप्ट को समझने में सक्षम होने के लिए जावास्क्रिप्ट को जानने के लिए की आवश्यकता नहीं है, लेकिन यह निश्चित रूप से चोट नहीं पहुंचाता है और एक बार जब आप पुन: प्रयोज्यता की सराहना करना शुरू करते हैं या बड़ी तस्वीर को देखना शुरू करते हैं तो आपको इसे सीखने की आवश्यकता होती है।

+1

+1 नहीं कर सकते हैं, हमेशा सराहना की। – rymo

+22

फिर फिर, जावास्क्रिप्ट मेरी पसंदीदा jQuery प्लगइन है ;-) –

2

हम जावास्क्रिप्ट में की फटना के वैकल्पिक बना सकते हैं:

function my_implode_js(separator,array){ 
     var temp = ''; 
     for(var i=0;i<array.length;i++){ 
      temp += array[i] 
      if(i!=array.length-1){ 
       temp += separator ; 
      } 
     }//end of the for loop 

     return temp; 
}//end of the function 

var array = new Array("One", "Two", "Three"); 


var str = my_implode_js('-',array); 
alert(str); 
+10

चीजों के पाठ्यपुस्तक मामले को नहीं करना है। लूप में स्ट्रिंग कॉन्सटेनेशन न करें। अपने धीमे कोड के साथ तेजी से निर्मित कार्यों को प्रतिस्थापित न करें। अक्षर के बजाय 'ऐरे' कन्स्ट्रक्टर का उपयोग करना अनावश्यक रूप से वर्बोज़ है। यदि आप इंपोड फ़ंक्शन को फिर से बनाने के लिए बेताब हैं तो स्मार्ट चीज आपके स्वयं के फ़ंक्शन के साथ अंतर्निहित विधि को लपेटने के लिए होगी। सबसे अच्छी बात यह है कि आप जिस भाषा में प्रोग्रामिंग कर रहे हैं उसे सीखना। – mikerobi

0

array.join पहचानने नहीं किया गया था "," एक विभाजक कैसे, लेकिन इसे अल्पविराम से बदलना। jQuery का उपयोग करके आप $.each उपयोग कर सकते हैं एक सरणी फटना (ध्यान दें कि output_saved_json सरणी है और tmp स्ट्रिंग है जो बिखर गया सरणी की दुकान जाएगा):

var tmp = ""; 
$.each(output_saved_json, function(index,value) { 
    tmp = tmp + output_saved_json[index] + ";"; 
}); 

output_saved_json = tmp.substring(0,tmp.length - 1); // remove last ";" added 

मैं-स्ट्रिंग का इस्तेमाल किया है पिछले दूर करने के लिए "," बिना आवश्यकता के फाइनल में जोड़ा गया। लेकिन अगर आप चाहें, तो आप के बजाय substring की तरह कुछ का उपयोग कर सकते हैं:

var tmp = ""; 
$.each(output_saved_json, function(index,value) { 
    tmp = tmp + output_saved_json[index]; 

    if((index + 1) != output_saved_json.length) { 
     tmp = tmp + ";"; 
    } 
}); 

output_saved_json = tmp; 

मुझे लगता है कि क्योंकि यह अगर सूचकांक सरणी हर बार जबकि की लंबाई की तुलना में अलग है की जाँच करने की जरूरत है यह पिछले समाधान 1 एक से अधिक धीमी है $.each खत्म मत करो।

+0

यदि आपको ';' के बजाय ',' मिल रहा था आप शामिल विधि में delimiter पास करने के लिए भूल रहे थे। 'Your_array.join (';') ' – mikerobi

+0

आज़माएं मैंने उस समय कोशिश की लेकिन यह आईई में काम नहीं किया (मुझे संस्करण सटीक याद नहीं है, लेकिन मुझे लगता है कि आईई 6 था)।मुझे उस समय इसका समर्थन करने की आवश्यकता थी (एंटरप्राइज़ ऐप ...)। नए ब्राउज़र में आपके नोट शायद समझ में आता है। नोट माइक के लिए धन्यवाद और पूछने से पहले डाउनवोट के लिए धन्यवाद क्यों मैंने इस विधि का उपयोग किया है। – jaysponsored

+1

जॉइन पैरामीटर आईई 4, 5, 5.5, 6+ में काम करता है। मैंने IE3 में काम नहीं किया हो सकता है लेकिन मुझे अपनी प्रतिलिपि किसी भी जावास्क्रिप्ट को निष्पादित करने के लिए नहीं मिल सकती है, इसलिए मैं परीक्षण नहीं कर सकता। – mikerobi

14
भविष्य में संदर्भ के लिए

, यदि आप PHP's implode() when no delimiter is specified के व्यवहार (शाब्दिक सिर्फ टुकड़ों को एक साथ शामिल होने) की नकल करना चाहते हैं, तो आप डिलीमीटर के रूप में अल्पविरामों का उपयोग करने के लिए जावास्क्रिप्ट की join() अन्यथा यह चूक में एक खाली स्ट्रिंग पारित करने के लिए की जरूरत है:

var bits = ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']; 
alert(bits.join()); // H,e,l,l,o, ,W,o,r,l,d 
alert(bits.join('')); // Hello World 
संबंधित मुद्दे