JQuery / जावास्क्रिप्ट के साथ एक सरणी इम्प्लोड करें?


जवाबों:


546

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

arrayName.join(delimiter)

मैं किसी भी jQuery फ़ंक्शन के बारे में नहीं जानता जो किसी भी बेहतर है।


4
क्या एक मध्यस्थ बल इस उत्तर को स्वीकार कर सकता है या कुछ इसे शीर्ष पर कैसे जा सकता है? मुझे यह जवाब शुरू में पढ़ने में याद आया।
प्रेसिंगऑनवेज


28

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

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


23
तब फिर से, जावास्क्रिप्ट मेरे पसंदीदा jQuery प्लगइन; ;-)
jon_darkstar

16

भविष्य के संदर्भ के लिए, यदि आप PHP केimplode() व्यवहार की नकल करना चाहते हैं जब कोई सीमांकक निर्दिष्ट नहीं किया जाता है (शाब्दिक रूप से केवल टुकड़ों को एक साथ मिलाएं), तो आपको जावास्क्रिप्ट में खाली स्ट्रिंग को पास करने की आवश्यकता होती है 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

10

एक सरणी में सभी तत्वों को सम्‍मिलित करके एक नया स्ट्रिंग बनाएँ () विधि का प्रयोग करें और वापस लौटाता है।

काम करने का उदाहरण

var arr= ['A','b','C','d',1,'2',3,'4'];
var res= arr.join('; ')
console.log(res);


1

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

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);

12
चीजों को न करने की पाठ्यपुस्तक का मामला। एक लूप में स्ट्रिंग समवर्ती का प्रदर्शन न करें। अपने स्वयं के धीमी कोड के साथ कार्यों में निर्मित तेजी से प्रतिस्थापित न करें। Arrayशाब्दिक के बजाय कंस्ट्रक्टर का उपयोग करना अनिवार्य है। यदि आप प्रत्यारोपण फ़ंक्शन को फिर से बनाने के लिए बेताब हैं, तो स्मार्ट चीज अपने स्वयं के फ़ंक्शन के साथ अंतर्निहित विधि को लपेटने के लिए होगी। होशियार बात यह है कि आप जिस भाषा में प्रोग्रामिंग कर रहे हैं उसे सीखना है।
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समाप्त नहीं होता है।


यदि आप '' के बजाय ',' प्राप्त कर रहे थे; आप सम्मिलित विधि से परिसीमन को पारित करना भूल रहे थे। कोशिशyour_array.join(';')
mikerobi

मैंने इसे उस समय आज़माया था, लेकिन यह IE में काम नहीं किया था (मुझे सटीक संस्करण याद नहीं है, लेकिन मुझे लगता है कि IE6 था)। मुझे उस समय (एंटरप्राइज़ ऐप ...) में इसका समर्थन करने की आवश्यकता थी। नए ब्राउज़रों में आपका नोट संभवतः समझ में आता है। नोट के लिए धन्यवाद माइक और डाउनवोट के लिए धन्यवाद पूछें कि मैंने इस पद्धति का उपयोग क्यों किया है।
१२:२६

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

हाँ यह काम करता है। लेकिन "" के साथ नहीं। यह जुड़ता है, लेकिन इसकी जगह ";" साथ "," कम से कम पर सर्वर 2003
jaysponsored
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.