2017-02-10 1 views
0

Javascript Array Länge geben 1 wenn null.Ich verwende Split-Funktion.Array Split null Wert zählt 1 in Javascript

var str = ''; 
var arr = str.split(','); 
alert(arr.length); 
**Output:1** 

Wenn jeder Wert in String richtig

var str = 'a,b,c'; 
    var arr = str.split(','); 
    alert(arr.length); 
    ****Output:3**** 
+0

Sie können es in eine if-Anweisung umschließen: var str = ''; if (str) { var. Arr = str.split (','); } sonst { var arr = []; } Warnung (arr.length); Auf diese Weise haben Sie eine Auswertung Ihrer Zeichenfolge und da leere Zeichenfolge in JS zu 'falsy 'ausgewertet wird, führen Sie die else-Anweisung aus, wenn die Zeichenfolge leer ist und ein leeres Array zurückgibt. – Falk

+0

Besser duplizieren: http://stackoverflow.com/questions/33516370/javascript-split-gives-array-size-one-instead-of-zero-for-e-pty-string Andere war für Scala. Nicht sicher, wie das passiert ist. –

Antwort

1

eine leere Zeichenfolge zu zählen ist kein Null-Wert . Und String.prototype.split teilt eine Zeichenfolge in Array-Indizes, wenn es das Trennzeichen findet. In Ihrer leeren Zeichenfolge gibt es eine einzelne Zeichenfolge. Daher erhalten Sie eine Array-Länge von 1.

+0

ok.then wie kann ich Stringlänge im Array berechnen? – Raju

+0

@Raju Erfahren Sie mehr dazu bitte, ich verstehe Ihre Frage überhaupt nicht ... –

+0

@Raju Meinst du das? 'var totalLength = array.reduce (function (result, str) {result + = str.length; gibt das Ergebnis zurück;}, 0);' –

1

wenn Sie tun var arr = str.split (','); Das zurückgegebene Array ist nicht null. Es hat ein Element und dieser Wert enthält Platz. Also, wenn Sie Arr.Length tun - es wird 1 zurückgeben, da es ein Element hat und dieses Element ist Platz "".

Ich hoffe, es hilft. Happy Learning :)