Entfernt nur Whitespace-Array-Elemente

8

Wie kann ich mit Array.splice das Array an Ort und Stelle ändern, wie kann ich alle reinen Whitespace-Elemente aus einem Array entfernen, ohne einen Fehler zu erzeugen? Mit PHP haben wir preg_grep, aber ich bin verloren, wie und das richtig in JS.

Folgendes wird aus dem oben genannten Grund nicht funktionieren:

%Vor%

Fehler:

  

Uncaught TypeError: Die Methode 'match' von undefined

kann nicht aufgerufen werden
    
tenub 18.12.2013, 21:33
quelle

5 Antworten

17

Eine bessere Methode, um "whitespace-only" -Elemente aus einem Array zu entfernen.

%Vor%

Erläuterung:

Array.prototype.filter gibt ein neues Array zurück, das nur die Elemente enthält, für die die Funktion true (oder einen Truthy-Wert) zurückgibt.

/\S/ ist eine Regex, die einem Nicht-Leerzeichen entspricht. /\S/.test(str) gibt zurück, ob str ein Nicht-Leerzeichen hat.

    
Paul Draper 18.12.2013, 21:36
quelle
3

Eine weitere Filter-basierte Variante - wiederverwendbar (Funktion)

%Vor%     
lironn 15.07.2016 06:13
quelle
2

Sie haben ein Element aus dem Array entfernt, wodurch die Länge des Arrays reduziert wurde. Ihre Schleife wurde fortgesetzt, einige Indizes (die in den entfernten Index verschoben wurden) übersprungen und schließlich versucht, auf einen Index außerhalb des neuen Bereichs zuzugreifen.

Versuchen Sie es stattdessen:

%Vor%
    
canon 18.12.2013 21:38
quelle
0

Und für eine neue Generation (nämlich ES2015):

%Vor%

Mehr zu trim ()

    
Adrian Lynch 17.12.2015 07:07
quelle
0

a="Leerzeichen entfernen"

%Vor%

Er gibt ein Array aller Zeichen in {a="Leerzeichen entfernen"} ohne Leerzeichen zurück.

Sie können die Ausgabe für jede Methode separat testen: split () und join ().

    
Gosha 11.02.2018 20:00
quelle

Tags und Links