Verknüpfen Sie Zeichenfolgen nur dann mit einem Trennzeichen, wenn Zeichenfolgen nicht null oder leer sind?
Fühlt sich an wie es sollte einfach sein, also sorry wenn ich mich hier etwas fehlt, aber ich bin auf der Suche nach einem einfachen Weg, um zu verketten, nur nicht null oder nicht-leere Zeichenketten.
Ich habe mehrere verschiedene Adress-Felder:
var address;
var city;
var state;
var zip;
Die Werte für diese Menge basierend auf ein Formular in die Seite und einige andere js-code.
Möchte ich für die Ausgabe der vollständigen Adresse in einem div, getrennt durch Komma + Leerzeichen, so etwas wie dieses:
$("#addressDiv").append(address + ", " + city + ", " + state + ", " + zip);
Problem ist, eine oder alle dieser Felder werden könnte, null/leer ist. Gibt es irgendeine einfache Weise zu verbinden Sie alle nicht-leeren Felder in dieser Gruppe von Feldern, ohne dabei eine Prüfung der Länge des jeweils individuell vor dem hinzufügen der Zeichenfolge...?
InformationsquelleAutor der Frage froadie | 2013-11-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da noch eine Lösung, die nicht erfordert
jQuery
:InformationsquelleAutor der Antwort aga
Lodash Lösung:
_.filter([address, city, state, zip]).join()
InformationsquelleAutor der Antwort Tim Santeford
@aga die Lösung ist groß, aber es funktioniert nicht in älteren Browsern wie dem IE8 aufgrund der fehlenden Array.der Prototyp.filter() in Ihrer JavaScript-engines.
Für diejenigen, die daran interessiert sind, eine effiziente Lösung in einer breiten Palette von Browsern (einschließlich IE 5.5 - 8) und die nicht erfordern, jQuerysiehe unten:
Enthält es einige performance-Optimierungen beschrieben, die auf MDN hier.
Und hier ist ein Beispiel:
InformationsquelleAutor der Antwort Alexander Abakumov
Versuchen
Demo: Fiddle
InformationsquelleAutor der Antwort Arun P Johny
InformationsquelleAutor der Antwort nicb
Nur:
InformationsquelleAutor der Antwort glue_stick