Quelle est la différence entre les deux?
Je sais donc que array.size()
est une fonction alors que array.length
est une propriété. Existe-t-il un cas d'utilisation pour utiliser l'un sur l'autre? Est-ce qu'on est plus efficace (j'imagine que .length
est beaucoup plus rapide, puisqu'il s'agit d'une propriété plutôt que d'un appel à une méthode?) Pourquoi utiliserait-on jamais 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);
Imprimera:
0, 0, true
3, 3, true
Toujours utiliser la propriété de longueur
Une bibliothèque ou un script ajoute la méthode size au prototype de tableau car il ne s'agit pas d'une méthode de tableau natif. Ceci est couramment fait pour ajouter un support pour un getter personnalisé. Un exemple d'utilisation de ce serait lorsque vous voulez obtenir la taille en mémoire d'un tableau (ce qui est la seule chose que je peux penser qui serait utile pour ce nom).
Underscore.js définit malheureusement une méthode size
qui renvoie en réalité la longueur d'un objet ou d'un tableau. Comme, malheureusement, la propriété de longueur d’une fonction est définie comme le nombre d’arguments nommés, la fonction déclare qu’elle devait utiliser une alternative et la taille a été choisie (le nombre aurait été meilleur).
.size()
est not une fonction JS native de Array
(du moins dans aucun navigateur que je connaisse).
.length
devrait être utilisé.
.size()
ne fonctionne sur votre page. Assurez-vous de ne pas inclure de bibliothèques supplémentaires, telles que prototype qui corrode avec le prototype Array
.
Votre navigateur peut contenir un plugin en train de nettoyer le prototype Array
.
.size()
se trouve dans Jquery et dans de nombreuses autres bibliothèques.
.length
fonctionne uniquement lorsque la clé est un numéro. 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 celui de jQuery, vous confondez probablement avec quelqu'un d'autre qui a importé la bibliothèque jQuery dans son projet.
Si vous aviez jQuery importé et que vous écriviez comme $(array).size()
, la longueur du tableau serait renvoyée.
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 de un à l'index le plus élevé.
Comme indiqué précédemment, Array.size()
n'est pas une méthode valide.
La taille détecte les doublons, elle retournera le nombre de valeurs uniques
const set1 = new Set([1, 2, 3, 4, 5, 5, 5, 6]);
console.log(set1.size);
// expected output: 6
La méthode .size () est obsolète à partir de jQuery 1.8. Utilisez la propriété .length à la place
La propriété 'longueur' renvoie le (last_key + 1) pour les tableaux avec des touches numériques:
var nums = new Array ();
nums [ 10 ] = 10 ;
nums [ 11 ] = 11 ;
log.info( nums.length );
imprimera 12!
Cela fonctionnera:
var nums = new Array ();
nums [ 10 ] = 10 ;
nums [ 11 ] = 11 ;
nums [ 12 ] = 12 ;
log.info( nums.length + ' / '+ Object.keys(nums).length );