Jaka jest różnica między nimi?
Wiem więc, że array.size()
funkcja array.length
jest właściwością. Czy istnieje przypadek użycia jednego nad drugim? Czy jeden jest bardziej wydajny? (Wyobrażam sobie, .length
że byłoby znacznie szybsze, ponieważ jest to właściwość, a nie wywołanie metody?) Dlaczego miałoby się używać wolniejszej opcji? Czy są jakieś przeglądarki, które nie są kompatybilne z jedną czy drugą?
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);
Wydrukuje:
0, 0, true
3, 3, true
javascript
arrays
Abraham P.
źródło
źródło
Array.size()
metodę w natywnym JavaScript?.size
....size()
prawdopodobnie pochodzi z frameworka Prototype: prototypejs.org/doc/latest/language/Array/prototype/sizeOdpowiedzi:
Array.size () nie jest prawidłową metodą
Zawsze używaj właściwości length
Istnieje biblioteka lub skrypt dodający metodę size do prototypu tablicy, ponieważ nie jest to natywna metoda tablicy. Zwykle robi się to, aby dodać obsługę niestandardowego programu pobierającego. Przykładem użycia tego byłoby, gdy chcesz uzyskać rozmiar w pamięci tablicy (co jest jedyną rzeczą, o której mogę pomyśleć, że byłoby przydatne dla tej nazwy).
Underscore.js niestety definiuje
size
metodę, która faktycznie zwraca długość obiektu lub tablicy. Ponieważ niestety właściwość length funkcji jest zdefiniowana jako liczba nazwanych argumentów, funkcja deklaruje, że musiała użyć alternatywy i wybrano rozmiar (liczba byłaby lepszym wyborem).źródło
.size()
jest nie rodem z funkcji JSArray
(przynajmniej nie w każdej przeglądarce, które znam)..length
należy użyć.Gdyby
.size()
ma pracę na swojej stronie, upewnij się, że nie posiada żadnych dodatkowych bibliotek zawarta podobnie pierwowzór , który jest mucking zArray
prototypem.lub
W przeglądarce może znajdować się wtyczka, która psuje
Array
prototyp.źródło
[].size
w konsoli. Jeśli to działa, masz jakąś wtyczkę Chrome, która jest zepsuta prototypem Array, i byłbym zmartwiony. :)Ta
.size()
funkcja jest dostępna w Jquery i wielu innych bibliotekach.The
.length
Własność działa tylko wtedy, gdy indeks jest liczbą całkowitą.length
Nieruchomość będzie pracować z tego typu tablicy:length
Nieruchomość nie będzie pracować z tego typu tablicy:Więc w twoim przypadku powinieneś korzystać z tej
.length
właściwości.źródło
pbook
powyżej, możesz użyć$(pbook).size();
[wymaga jQuery].size()
należy do jQuery, prawdopodobnie jesteś albo mylony z kimś innym, kto zaimportował bibliotekę jQuery do swojego projektu.Jeśli zaimportujesz jQuery i napiszesz
$(array).size()
, zwróci długość tablicy.źródło
.size()
niego nie tylko jqueryarray.length
niekoniecznie liczba elementów w tablicy:Długość tablicy jest o jeden większa niż najwyższy indeks.
Jak wspomniano wcześniej,
Array.size()
nie jest to poprawna metoda.Więcej informacji
źródło
Właściwość „length” zwraca (last_key + 1) dla tablic z klawiszami numerycznymi:
wydrukuje 12!
To zadziała:
źródło
Metoda .size () jest przestarzała od wersji jQuery 1.8. Zamiast tego użyj właściwości .length
Zobacz: https://api.jquery.com/size/
źródło
Rozmiar wykrywa duplikaty, zwraca liczbę unikalnych wartości
źródło
Właściwie,
.size()
to nie czysta metoda JavaScript, tam jest właściwością accessor.size
of Set obiektu, który jest trochę wygląda jak.size()
, ale nie jest to metoda funkcji, tak jak powiedziałem, jest to własność akcesor zestawu obiektu, aby pokazać unikalny numer (unikalne) elementy w obiekcie Set.I
length
jest właściwością iterowalnego obiektu (tablicy), która zwraca liczbę elementów w tej tablicy. Wartość jest 32-bitową liczbą całkowitą bez znaku, która jest zawsze liczbowo większa niż najwyższy indeks w tablicy.źródło
możemy użyć właściwości .length do ustawienia lub zwrócenia liczby elementów w tablicy. zwracana wartość to liczba
możemy .size na wypadek, gdybyśmy potrzebowali odfiltrować zduplikowane wartości i uzyskać liczbę elementów w zestawie.
źródło