array.size () vs array.lengte

Wat is het verschil tussen de twee?

Dus ik weet dat Array.size()een functie is terwijl array.lengthis een eigendom. Is er een usecase voor het gebruik van de ene in de andere? Is er nog een efficiënter? (Ik zou me voorstellen .lengthom significant sneller te zijn omdat het een eigenschap is, eerder dan een methode-oproep?) Waarom zou iemand ooit de langzamere optie gebruiken? Zijn er enkele browsers die niet compatibel zijn met de een of de andere?

 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);

Afdrukken:

 0, 0, true
  3, 3, true

Antwoord 1, Autoriteit 100%

array.size () is geen geldige methode

Gebruik altijd de eigenschappen van de lengte

Er is een bibliotheek of script die de maatmethode aan het array-prototype toevoegen, omdat dit geen native array-methode is. Dit wordt vaak gedaan om ondersteuning voor een aangepaste getter toe te voegen. Een voorbeeld van het gebruik van dit zou zijn wanneer u de maat in het geheugen van een array wilt krijgen (wat het enige is dat ik kan bedenken, dat zou nuttig zijn voor deze naam).

underscore.js definieert helaas een size-methode die de lengte van een object of array daadwerkelijk retourneert. Omdat helaas de eigenschap van een functie van een functie wordt gedefinieerd als het aantal benoemde argumenten dat de functie verklaart dat ze een alternatief en de grootte moesten gebruiken (telling zou een betere keuze zijn geweest).


Antwoord 2, Autoriteit 29%

.size()is geeneen native JS-functie van Array(althans niet in een browser die ik ken).

.lengthmoetworden gebruikt.


Als

.size()werktop uw pagina, zorg ervoor dat u geen extra bibliotheken heeft zoals prototypedat knoeit met het Array-prototype.

of

Er is mogelijk een plug-in in uw browser die knoeit met het Array-prototype.


Antwoord 3, autoriteit 5%

De functie .size()is beschikbaar in JQuery en vele andere bibliotheken.

De eigenschap .lengthwerkt alleen als de index een geheel getal is.

De eigenschap lengthzalwerken met dit type array:

var nums = new Array();
nums[0] = 1; 
nums[1] = 2;
print(nums.length); // displays 2

De eigenschap lengthwerkt nietmet dit type array:

var pbook = new Array(); 
pbook["David"] = 1; 
pbook["Jennifer"] = 2;
print(pbook.length); // displays 0

Dus in jouw geval zou je de eigenschap .lengthmoeten gebruiken.


Antwoord 4, autoriteit 3%

.size()is van jQuery, waarschijnlijk verwar je je met of heb je iemand anders overgenomen die de jQuery-bibliotheek in zijn project had geïmporteerd.

Als je jQueryzou hebben geïmporteerd en je zou schrijven als $(array).size(), het zou de arraylengte teruggeven.


Antwoord 5, autoriteit 3%

array.lengthis niet noodzakelijk het aantal items in de array:

var a = ['car1', 'car2', 'car3'];
a[100] = 'car100';
a.length; // 101

De lengte van de array is één meer dan de hoogste index.

Zoals eerder vermeld is Array.size()geen geldige methode.

Meer informatie


Antwoord 6, autoriteit 2%

De eigenschap ‘length’ retourneert de (last_key + 1) voor arrays met numerieke toetsen:

var  nums  =  new  Array ();
nums [ 10 ]  =  10 ; 
nums [ 11 ]  =  11 ;
log.info( nums.length );

drukt er 12!

Dit werkt:

var  nums  =  new  Array ();
nums [ 10 ]  =  10 ; 
nums [ 11 ]  =  11 ;
nums [ 12 ]  =  12 ;
log.info( nums.length + '  /  '+ Object.keys(nums).length );

Antwoord 7

De methode .size() is verouderd vanaf jQuery 1.8. Gebruik in plaats daarvan de eigenschap .length

Zie: https://api.jquery.com/size/


Antwoord 8

Grootte detecteert duplicaten, het geeft het aantal unieke waarden terug

const set1 = new Set([1, 2, 3, 4, 5, 5, 5, 6]);
console.log(set1.size);
// expected output: 6

Antwoord 9

Eigenlijk is .size()geen pure JavaScript-methode, er is een accessor-eigenschap .sizevan Setobject dat een beetje lijkt op .size()maar het is geen functiemethode, zoals ik al zei, het is een accessor-eigenschap van een Set-object om het unieke aantal (unieke) elementen in een Set-object weer te geven.

De accessor-eigenschap size retourneert het aantal (unieke) elementen in een Set-object.

const set1 = new Set();
const object1 = new Object();
set1.add(42);
set1.add('forty two');
set1.add('forty two');
set1.add(object1);
console.log(set1.size);
// expected output: 3

En lengthis een eigenschap van een itereerbaar object (array) dat het aantal elementen in die array retourneert. De waarde is een 32-bits geheel getal zonder teken dat altijd numeriek groter is dan de hoogste index in de array.

const clothing = ['shoes', 'shirts', 'socks', 'sweaters'];
console.log(clothing.length);
// expected output: 4

Antwoord 10

we kunnen de eigenschap .lengthgebruiken om het aantal elementen in een array in te stellen of terug te geven. retourwaarde is een getal

> set the length: let count = myArray.length;
> return lengthof an array : myArray.length

we kunnen u .size voor het geval we dubbele waarden moeten filteren en het aantal elementen in een set moeten krijgen.

const set = new set([1,1,2,1]); 
 console.log(set.size) ;`

Other episodes