Kann ich ein Array in jQuery wie in PHP implodieren?
Ein Array mit JavaScript implodieren?
Omega
jon_darkstar
Sie können dies in einfachem JavaScript verwenden Array.prototype.join
:
arrayName.join(delimiter);
-
Kann ein Moderator diese Antwort akzeptieren oder irgendwie nach oben bringen? Ich habe diese Antwort beim ersten Lesen verpasst.
– ImmerEindrücken
1. März 2014 um 2:40 Uhr
So was:
[1,2,3,4].join('; ')
nikc.org
Array.join
ist was man braucht, aber wer mag, kommt auf die freundlichen Menschen an phpjs.org geschaffen haben implode
für dich.
Dann etwas Off-Topic-Rantieren. Wie @jon_darkstar bereits betont hat, ist jQuery JavaScript und nicht umgekehrt. Du nicht brauchen JavaScript zu kennen, um zu verstehen, wie man jQuery verwendet, aber es schadet sicherlich nicht, und sobald Sie beginnen, die Wiederverwendbarkeit zu schätzen oder das Gesamtbild zu betrachten, müssen Sie es unbedingt lernen.
-
Andererseits IST Javascript mein Lieblings-jQuery-Plugin 😉
– jon_darkstar
3. Mai 2012 um 17:59 Uhr
-
Dieser Kommentar ist gut gealtert
– AlexioVay
14. Oktober 2021 um 9:23 Uhr
Zum späteren Nachschlagen, wenn Sie das Verhalten von nachahmen möchten PHPs implode()
Wenn kein Trennzeichen angegeben (buchstäblich nur die Teile zusammenfügen), müssen Sie eine leere Zeichenfolge an Javascript übergeben join()
Andernfalls werden standardmäßig Kommas als Trennzeichen verwendet:
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
Deepu Reghunath
Verwenden beitreten() -Methode erstellt eine neue Zeichenfolge und gibt sie zurück, indem alle Elemente in einem Array verkettet werden.
Arbeitsbeispiel
var arr= ['A','b','C','d',1,'2',3,'4'];
var res= arr.join('; ')
console.log(res);
Vijay Verma
Wir können eine Alternative zum Implodieren von in Javascript erstellen:
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);
eduardomozart
array.join
wurde “;” nicht erkannt wie ein Trennzeichen, aber durch Komma ersetzen. Mit jQuery können Sie verwenden $.each
um ein Array zu implodieren (Beachten Sie, dass output_saved_json das Array und tmp die Zeichenfolge ist, die das implodierte Array speichert):
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
Ich habe die Teilzeichenfolge verwendet, um das letzte “;” zu entfernen. im Finale ohne Notwendigkeit hinzugefügt. Aber wenn Sie es vorziehen, können Sie stattdessen verwenden substring
etwas wie:
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;
Ich denke, diese letzte Lösung ist langsamer als die erste, weil sie jedes Mal prüfen muss, ob der Index anders ist als die Länge des Arrays $.each
nicht enden.
-
Wenn Sie ein ‘,’ anstelle eines ‘;’ Sie haben vergessen, das Trennzeichen an die Join-Methode zu übergeben. Versuchen
your_array.join(';')
– Mikerobi
17. April 2013 um 14:40 Uhr
-
Ich habe es damals versucht, aber es hat im IE nicht funktioniert (ich erinnere mich nicht mehr genau an die Version, aber ich glaube, das war IE6). Ich musste es in dieser Zeit unterstützen (Enterprise-App …). In neueren Browsern macht Ihr Hinweis wahrscheinlich Sinn. Danke für den Hinweis Mike und danke für die Ablehnung, BEVOR ich frage, WARUM ich diese Methode verwendet habe.
– eduardomozart
22. April 2013 um 16:26 Uhr
-
Der Join-Parameter funktioniert in IE 4, 5, 5.5, 6+. Ich habe vielleicht nicht in IE3 gearbeitet, aber ich kann meine Kopie nicht dazu bringen, JavaScript auszuführen, also kann ich nicht testen.
– Mikerobi
22. April 2013 um 18:06 Uhr
-
Ja es funktioniert. Aber nicht mit “;”. Es verbindet aber ersetzt “;” mit “,”, zumindest auf Server 2003.
– eduardomozart
20. Mai 2013 um 15:36 Uhr