Какая разница между двумя?
Так что я знаю, что array.size()
это функция, а array.length
свойство. Есть ли вариант использования одного над другим? Еще один эффективный? (Я полагаю, .length
что он будет значительно быстрее, поскольку это свойство, а не вызов метода?) Почему кто-то когда-либо использовал более медленный вариант? Существуют ли браузеры, несовместимые с одним или другим?
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);
Распечатает:
0, 0, true
3, 3, true
javascript
arrays
Авраам П
источник
источник
Array.size()
метод в родном JavaScript?.size
....size()
скорее всего из фреймворка Prototype: prototypejs.org/doc/latest/language/Array/prototype/sizeОтветы:
Array.size () не является допустимым методом
Всегда используйте свойство длины
Существует библиотека или скрипт, добавляющий метод size к прототипу массива, поскольку это не нативный метод массива. Обычно это делается для добавления поддержки пользовательского геттера. Примером использования этого может быть, когда вы хотите получить размер в памяти массива (это единственное, о чем я могу подумать, было бы полезно для этого имени).
К сожалению, Underscore.js определяет
size
метод, который на самом деле возвращает длину объекта или массива. Поскольку, к сожалению, свойство length функции определяется как число именованных аргументов, функция объявляет, что им пришлось использовать альтернативу, и был выбран размер (count был бы лучшим выбором).источник
.size()
это не родная функция JS изArray
(по крайней мере , не в любом браузере , который я знаю)..length
следует использовать.Если
.size()
действительно работает на вашей странице, убедитесь, что у вас нет дополнительных библиотек, таких как прототип, который смешивается сArray
прототипом.или
В вашем браузере может быть какой-то плагин, который смешивается с
Array
прототипом.источник
[].size
в консоли. Если это работает, то у вас есть какой-то плагин Chrome, который смешивается с прототипом Array, и я бы волновался. :).size()
Функция доступна в Jquery и многих других библиотек..length
Свойство работает только тогда , когда индекс является целым числом.length
Свойство будет работать с этим типом массива:length
Свойство не будет работать с этим типом массива:Так что в вашем случае вы должны использовать
.length
собственность.источник
pbook
выше, вы можете использовать$(pbook).size();
[требует jQuery].size()
это jQuery, скорее всего, вы либо запутались, либо взяли у кого-то еще, кто импортировал библиотеку jQuery в его проект.Если вы импортируете jQuery и будете писать как
$(array).size()
, он вернет длину массива.источник
.size()
это не только jqueryarray.length
не обязательно количество элементов в массиве:Длина массива на один больше, чем самый высокий индекс.
Как указано выше
Array.size()
, не является допустимым методом.Больше информации
источник
Свойство length возвращает (last_key + 1) для массивов с числовыми ключами:
напечатает 12!
Это будет работать:
источник
Начиная с версии jQuery 1.8 метод .size () устарел. Вместо этого используйте свойство .length
Смотрите: https://api.jquery.com/size/
источник
Размер обнаруживает дубликаты, он возвращает количество уникальных значений
источник
На самом деле,
.size()
это не чистый метод JavaScript, есть сбруя свойство.size
из Set объекта , который немного смахивает ,.size()
но это не метод функции, так же , как я уже сказал, это сбруя свойство Set объекта , чтобы показать уникальный номер (уникальные) элементы в объекте Set.И
length
является свойством итерируемого объекта (массива), который возвращает количество элементов в этом массиве. Значение представляет собой 32-разрядное целое число без знака, которое всегда численно больше самого высокого индекса в массиве.источник
мы можем использовать свойство .length для установки или возврата количества элементов в массиве. возвращаемое значение является числом
мы можем вам .size в случае, если нам нужно отфильтровать повторяющиеся значения и получить количество элементов в наборе.
источник