Was ist der Unterschied zwischen den beiden?
Ich weiß also, dass dies array.size()
eine Funktion ist, während array.length
es sich um eine Eigenschaft handelt. Gibt es einen Anwendungsfall für die Verwendung übereinander? Ist man effizienter? (Ich würde mir vorstellen .length
, deutlich schneller zu sein, da es sich eher um eine Eigenschaft als um einen Methodenaufruf handelt.) Warum sollte man jemals die langsamere Option verwenden? Gibt es einige Browser, die mit dem einen oder anderen nicht kompatibel sind?
var x = [];
console.log(x.size());
console.log(x.length);
console.log(x.size()==x.length);
x =[1,2,3];
console.log(x.size());
console.log(x.length);
console.log(x.size()==x.length);
Wird drucken:
0, 0, true
3, 3, true
javascript
arrays
Abraham P.
quelle
quelle
Array.size()
Methode in nativem JavaScript gefunden?.size
....size()
ist wahrscheinlich aus dem Prototype-Framework: prototypejs.org/doc/latest/language/Array/prototype/sizeAntworten:
Array.size () ist keine gültige Methode
Verwenden Sie immer die Eigenschaft length
Es gibt eine Bibliothek oder ein Skript, die die Größenmethode zum Array-Prototyp hinzufügt, da dies keine native Array-Methode ist. Dies wird normalerweise durchgeführt, um Unterstützung für einen benutzerdefinierten Getter hinzuzufügen. Ein Beispiel für die Verwendung wäre, wenn Sie die Größe eines Arrays im Speicher abrufen möchten (was das einzige ist, was ich mir vorstellen kann, das für diesen Namen nützlich wäre).
Underscore.js definiert leider eine
size
Methode, die tatsächlich die Länge eines Objekts oder Arrays zurückgibt. Da die Längeneigenschaft einer Funktion leider als die Anzahl der benannten Argumente definiert ist, erklärt die Funktion, dass sie eine Alternative verwenden müssen, und die Größe wurde ausgewählt (Anzahl wäre eine bessere Wahl gewesen).quelle
.size()
ist keine native JS-Funktion vonArray
(zumindest nicht in einem mir bekannten Browser)..length
sollte verwendet werden.Wenn
.size()
funktioniert auf Ihrer Seite, stellen Sie sicher, dass keine zusätzlichen Bibliotheken enthalten sind, wie z. B. ein Prototyp , der mit demArray
Prototyp inKonflikt gerät.oder
Möglicherweise befindet sich in Ihrem Browser ein Plugin, das mit dem
Array
Prototyp in Konflikt gerät .quelle
[].size
die Konsole ein. Wenn es funktioniert, haben Sie eine Art Chrome-Plugin, das mit dem Array-Prototyp in Konflikt gerät, und ich wäre besorgt. :)Die
.size()
Funktion ist in Jquery und vielen anderen Bibliotheken verfügbar.Die
.length
Eigenschaft funktioniert nur, wenn der Index eine Ganzzahl ist.Die
length
Eigenschaft wird mit dieser Art von Array arbeiten:Die
length
Eigenschaft wird nicht mit dieser Art von Array arbeiten:In Ihrem Fall sollten Sie also die
.length
Eigenschaft verwenden.quelle
pbook
oben, können Sie verwenden$(pbook).size();
[erfordert jQuery].size()
ist jQuery's, wahrscheinlich verwechseln Sie jemanden oder haben ihn von jemand anderem übernommen, der die jQuery-Bibliothek in sein Projekt importiert hat.Wenn Sie jQuery importiert hätten und gerne schreiben
$(array).size()
würden, würde dies die Arraylänge zurückgeben.quelle
.size()
es nicht nur jqueryarray.length
ist nicht unbedingt die Anzahl der Elemente im Array:Die Länge des Arrays ist eins mehr als der höchste Index.
Wie zuvor erläutert
Array.size()
ist dies keine gültige Methode.Mehr Informationen
quelle
Die Eigenschaft 'length' gibt den (last_key + 1) für Arrays mit numerischen Schlüsseln zurück:
druckt 12!
Das wird funktionieren:
quelle
Die .size () -Methode ist ab jQuery 1.8 veraltet. Verwenden Sie stattdessen die Eigenschaft .length
Siehe: https://api.jquery.com/size/
quelle
Die Größe erkennt Duplikate und gibt die Anzahl der eindeutigen Werte zurück
quelle
Eigentlich
.size()
ist es keine reine JavaScript-Methode, es gibt eine Accessor-Eigenschaft.size
des Set- Objekts, die ein wenig aussieht,.size()
aber es ist keine Funktionsmethode, genau wie ich sagte, es ist eine Accessor-Eigenschaft eines Set-Objekts, um die eindeutige Anzahl von anzuzeigen (eindeutige) Elemente in einem Set-Objekt.Und
length
ist eine Eigenschaft eines iterierbaren Objekts (Arrays), das die Anzahl der Elemente in diesem Array zurückgibt. Der Wert ist eine vorzeichenlose 32-Bit-Ganzzahl, die numerisch immer größer als der höchste Index im Array ist.quelle
Mit der Eigenschaft .length können Sie die Anzahl der Elemente in einem Array festlegen oder zurückgeben. Rückgabewert ist eine Zahl
Wir können Sie .size, falls wir doppelte Werte filtern und die Anzahl der Elemente in einer Menge ermitteln müssen.
quelle