Puis-je imploser un tableau dans jQuery comme dans PHP?
Vous pouvez le faire en JavaScript simple, utilisez Array.prototype.join
:
_arrayName.join(delimiter)
_
Je ne connais aucune fonction jQuery qui soit meilleure.
Comme ça:
[1,2,3,4].join('; ')
Array.join
est ce dont vous avez besoin, mais si vous le souhaitez, les personnes amicales de phpjs.org ont créé implode
pour vous.
Puis, quelques sujets légèrement délirants. Comme @jon_darkstar alreadt l'a fait remarquer, jQuery est un script JavaScript et non l'inverse. Vous n'avez pas besoin de connaître JavaScript pour pouvoir comprendre comment utiliser jQuery, mais cela ne fait certainement pas de mal et une fois que vous commencez à apprécier la réutilisabilité ou commencez à regarder la plus grande image que vous devez absolument apprendre.
Pour référence future, si vous souhaitez imiter le comportement de implode()
de PHP lorsque _ , aucun délimiteur n'est spécifié (littéralement simplement joindre les morceaux ensemble), vous devez passer une chaîne vide dans la join()
de Javascript, sinon la valeur par défaut sera d'utiliser des virgules comme séparateurs:
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
Utilisez join () la méthode crée et retourne une nouvelle chaîne en concaténant tous les éléments d'un tableau.
Exemple de travail
var arr= ['A','b','C','d',1,'2',3,'4'];
var res= arr.join('; ')
console.log(res);
Nous pouvons créer une alternative d'implodation de en 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);
array.join
ne reconnaissait pas ";" comment un séparateur, mais en le remplaçant par une virgule. Avec jQuery, vous pouvez utiliser $.each
pour imploser un tableau (notez que output_saved_json est le tableau et tmp est la chaîne qui stockera le tableau implodé):
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
J'ai utilisé une sous-chaîne pour supprimer le dernier ";" ajouté au final 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 première, car elle doit vérifier si l’index est différent de la longueur d’un tableau à chaque fois que $.each
ne se termine pas.