Quelle est la différence entre les deux?
Donc, je sais que array.size()
est une fonction tandis que array.length
est une propriété. Existe-t-il une utilisation pour utiliser l'une sur l'autre? Est-ce que l'un est plus efficace (J'imagine que .length
est considérablement plus rapide car il s'agit d'une propriété plutôt que d'un appel de méthode?) Pourquoi est-ce que l'on utiliserait l'option plus lente? Existe-t-il des navigateurs incompatibles avec l'un ou l'autre?
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);
Imprime:
0, 0, true 3, 3, true
Toujours utiliser la propriété length
Il existe une bibliothèque ou un script ajoutant la méthode de taille au prototype de tableau car ce n'est pas une méthode de matrice native. Ceci est généralement fait pour ajouter un support pour un getter personnalisé. Un exemple d'utilisation de ce serait quand vous voulez obtenir la taille en mémoire d'un tableau (ce qui est le seul élément que je peux penser que cela serait utile pour ce nom).
Underscore.js définit malheureusement une méthode de size
qui renvoie effectivement la longueur d'un objet ou d'un tableau. Puisque, malheureusement, la propriété length d'une fonction est définie comme le nombre d'arguments nommés, la fonction déclare avoir dû utiliser une alternative et la taille a été choisie (le nombre aurait été un meilleur choix).
.size()
n'est pas une fonction JS native de Array
(au moins pas dans un navigateur que je connais).
.length
devrait être utilisé.
.size()
fonctionne sur votre page, assurez-vous que vous ne disposez pas de bibliothèques supplémentaires comme un prototype déchirant avec le prototype Array
.
Il peut y avoir un plugin sur votre navigateur qui se cache avec le prototype Array
.
.size()
est dans Jquery et d'autres beaucoup d'autres lib
.length
ne fonctionne que lorsque la clé est un nombre. La longueur ne fonctionne pas avec les clés de chaîne
.length
fonctionne bien pour ce type de tableau
var nums () = new Array (); nums [ 0 ] = 1 ; nums [ 1 ] = 2 ; print ( nums . length ); // displays 2
.length
ne fonctionne pas comme ce tableau
var pbook = new Array (); pbook [ "David" ] = 1 ; pbook [ "Jennifer" ] = 2 ; print ( pbook . length ); // displays 0
.size()
est jQuery, vous n'êtes probablement plus confus avec quelqu'un d'autre qui a importé la bibliothèque jQuery à son projet.
Si vous aviez importé jQuery et que vous $(array).size()
comme $(array).size()
, il renverrait la longueur du tableau.
Array.length n'est pas nécessairement le nombre d'éléments dans le tableau:
Var a = ['car1', 'car2', 'car3'];
A [100] = 'car100';
A.length; // 101
La longueur du tableau est supérieure à l'indice le plus élevé.
Comme indiqué précédemment, Array.size () n'est pas une méthode valide.
Pour plus d'informations, vérifiez: Trouvez la longueur du tableau dans Javascript