Implode an array with JavaScript?

JavascriptImplode

Javascript Problem Overview


Can I implode an array in jQuery like in PHP?

Javascript Solutions


Solution 1 - Javascript

You can do this in plain JavaScript, use Array.prototype.join:

arrayName.join(delimiter);

Solution 2 - Javascript

Like This:

[1,2,3,4].join('; ')

Solution 3 - Javascript

Array.join is what you need, but if you like, the friendly people at phpjs.org have created implode for you.

Then some slightly off topic ranting. As @jon_darkstar alreadt pointed out, jQuery is JavaScript and not vice versa. You don't need to know JavaScript to be able to understand how to use jQuery, but it certainly doesn't hurt and once you begin to appreciate reusability or start looking at the bigger picture you absolutely need to learn it.

Solution 4 - Javascript

For future reference, if you want to mimic the behaviour of PHP's implode() when no delimiter is specified (literally just join the pieces together), you need to pass an empty string into Javascript's join() otherwise it defaults to using commas as delimiters:

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

Solution 5 - Javascript

Use join() method creates and returns a new string by concatenating all of the elements in an array.

Working example

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

Solution 6 - Javascript

We can create alternative of implode of in javascript:

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

Solution 7 - Javascript

array.join was not recognizing ";" how a separator, but replacing it with comma. Using jQuery, you can use $.each to implode an array (Note that output_saved_json is the array and tmp is the string that will store the imploded array):

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

I have used substring to remove last ";" added at the final without necessity. But if you prefer, you can use instead substring something like:

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;

I think this last solution is more slower than the 1st one because it needs to check if index is different than the lenght of array every time while $.each do not end.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionOmegaView Question on Stackoverflow
Solution 1 - Javascriptjon_darkstarView Answer on Stackoverflow
Solution 2 - JavascriptmikerobiView Answer on Stackoverflow
Solution 3 - Javascriptnikc.orgView Answer on Stackoverflow
Solution 4 - JavascriptscrowlerView Answer on Stackoverflow
Solution 5 - JavascriptDeepu ReghunathView Answer on Stackoverflow
Solution 6 - JavascriptVijay VermaView Answer on Stackoverflow
Solution 7 - JavascripteduardomozartView Answer on Stackoverflow