Puis-je imploser un tableau dans jQuery comme en PHP?Implode un tableau avec jQuery/Javascript?
Répondre
comme ceci:
[1,2,3,4].join('; ')
Vous pouvez le faire en JavaScript plaine, utilisez Array.prototype.join
:
arrayName.join(delimiter)
Je ne connais aucune fonction jQuery qui est mieux.
@jball grâce à l'amélioration –
Est-ce qu'un modérateur peut accepter cette réponse ou comment faire en sorte qu'il atteigne le sommet? J'ai raté cette réponse en lisant cela. – PressingOnAlways
@PressingOnAlways Dieu merci modérateurs ne peuvent pas – Andrew
Array.join
est ce qu'il vous faut, mais si vous le souhaitez, les gens sympathiques à phpjs.org ont créé implode
pour vous.
Ensuite, un peu de hors sujet sujettes. Comme @jon_darkstar alreadt l'a fait remarquer, jQuery est JavaScript et non vice versa. Vous n'avez pas besoin de connaître JavaScript pour être en mesure de comprendre comment utiliser jQuery, mais il ne fait certainement pas de mal et une fois que vous commencez à apprécier la réutilisation ou commencer à regarder l'image plus grande, vous devez absolument l'apprendre.
+ 1 pour le lien vers la documentation, toujours apprécié. – rymo
puis encore une fois, javascript EST mon plugin jQuery préféré ;-) –
Nous pouvons créer alternative de imploser de 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);
Cas de manuels de choses à ne pas faire. N'effectue pas de concaténation de chaîne dans une boucle. Ne remplacez pas les fonctions intégrées rapides par votre propre code lent. Utiliser le constructeur 'Array' à la place des littéraux est inutilement verbeux. Si vous avez désespérément besoin de recréer la fonction implode, la méthode intelligente consiste à envelopper la méthode de jointure intégrée avec votre propre fonction. La chose la plus intelligente est d'apprendre la langue dans laquelle vous programmez. – mikerobi
array.join
ne reconnaissait pas ";" comment un séparateur, mais en le remplaçant par une virgule. En utilisant jQuery, vous pouvez utiliser $.each
imploser un tableau (Notez que output_saved_json est le tableau et tmp est la chaîne qui va stocker le tableau implosion):
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
Je l'ai utilisé pour enlever la dernière sous-chaîne « ; » ajouté à la finale sans nécessité. Mais si vous préférez, vous pouvez utiliser à la place substring
quelque chose comme:
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;
Je pense que cette dernière solution est plus lente que la 1ère, car il a besoin de vérifier si l'indice est différent de la longueur du tableau tous while temps $.each
ne finit pas.
Si vous obteniez un ',' au lieu d'un ';' vous avez oublié de transmettre le délimiteur à la méthode join. Essayez 'your_array.join (';')' – mikerobi
Je l'ai essayé à ce moment-là mais cela n'a pas fonctionné dans IE (je ne me souviens pas de la version exacte, mais je pense que c'était IE6).J'avais besoin de le supporter à ce moment-là (application d'entreprise ...). Dans les navigateurs plus récents, votre note a probablement du sens. Merci pour la note Mike et merci pour downvote AVANT de demander POURQUOI j'ai utilisé cette méthode. – jaysponsored
Le paramètre de jointure fonctionne dans IE 4, 5, 5.5, 6+. Je pourrais avoir travaillé dans IE3 mais je ne peux pas obtenir ma copie pour exécuter n'importe quel JavaScript, ainsi je ne peux pas tester. – mikerobi
Pour référence ultérieure, si vous voulez imiter le comportement de PHP's implode()
when no delimiter is specified (littéralement rejoindre les morceaux ensemble), vous devez passer une chaîne vide dans join()
de Javascript sinon il est par défaut à utiliser des virgules comme délimiteurs:
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
Try this http://javascript.ru/php/implode – Sergey