Array.size () vs Array.length

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 

Array.size () n'est pas une méthode valide

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é.


Si

.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 .

ou

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