Array.size() vs Array.length

这两者之间有什么区别?

所以我知道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
910836 次浏览

.size(),是Array的原生JS函数(至少在我所知道的任何浏览器中都不是)。

.length 应该被使用。


如果

.size() <强>是< / >强工作在你的页面上,确保你没有包含任何额外的库,比如原型,它会破坏Array原型。

在你的浏览器中可能有一些插件正在捣毁Array原型。

Array.size()不是一个有效的方法

始终使用length属性

有一个库或脚本将size方法添加到数组原型中,因为这不是原生数组方法。通常这样做是为了添加对自定义getter的支持。使用这种方法的一个例子是当您想要获取一个数组在内存中的大小时(这是我能想到的对这个名称有用的唯一方法)。

不幸的是,js定义了一个size方法,该方法实际上返回对象或数组的长度。不幸的是,函数的length属性被定义为命名参数的数量,函数声明他们必须使用替代参数,因此选择了size (count会是更好的选择)。

.size()是jQuery的,你可能很困惑,或者从其他人导入jQuery库到他的项目。

如果你导入了jQuery,并像$(array).size()那样写,它将返回数组长度。

.size()函数可以在Jquery和许多其他库中使用。

.length属性仅在索引为整数时有效。

length属性适用于这种类型的数组:

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

length属性不会适用于这种类型的数组:

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

所以在你的例子中,你应该使用.length属性。

array.length不一定是数组中元素的个数:

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

数组的长度比最高下标大1。

如前所述,Array.size()不是一个有效的方法。

更多信息 .

.size()方法从jQuery 1.8开始已弃用。请使用.length属性

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

属性'length'对于具有数字键的数组返回(last_key + 1):

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

将打印12!

这是可行的:

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

Size检测重复,它将返回唯一值的数量

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

实际上,.size()不是一个纯粹的JavaScript方法,有一个对象的访问器属性.size,它看起来有点像.size(),但它不是一个函数方法,就像我说的,它是一个Set对象的访问器属性,用于显示Set对象中(唯一)元素的唯一数量。

size访问器属性返回Set对象中(唯一)元素的数量。

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

length是一个可迭代对象(数组)的属性,返回该数组中的元素数量。该值是一个无符号的32位整数,在数值上总是大于数组中最高的索引。

const clothing = ['shoes', 'shirts', 'socks', 'sweaters'];


console.log(clothing.length);
// expected output: 4

我们可以使用长处属性来设置或返回数组中的元素数量。返回值是一个数字

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

如果我们需要过滤重复的值并获得集合中元素的计数,我们可以使用.size。

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