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

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

始终使用length属性

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

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

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

.length 应该使用


<标题>如果h1> .size() 是否在您的页面上工作,确保您没有包含任何额外的库,如prototype,与Array原型混淆。

你的浏览器上可能有一些插件与Array原型相混淆。

.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

原因是JavaScript在数组中不支持字符串类型的索引,而支持对象(作为属性),以及pbook或名为"pbook"的原型Array对象。现在将分配两个属性("David"one_answers";Jennifer";(即pbook.David)并表示一个空数组。

const a = []; // Relatively the same as: const a = new Array();
a['0a'] = 123; a['2'] = 456; a[1] = 789;
console.log(`a(${a.length}) = `, a);
console.log(`Enumerable properties of ${Object.prototype.toString.call(a)} = `, Object.keys(a));

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


对于对象,请考虑以下内容:
- JavaScript对象的长度;
——对象。getOwnPropertyNames vs Object.keys.

.size()是jQuery的,很可能你混淆了,或者从别人导入了jQuery库到他的项目。

如果您导入了jQuery,并且您编写了$(array).size(),它将返回数组长度

array.length不一定是数组中的项数:

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

数组的长度比最高索引长1。

如前所述,Array.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()方法在jQuery 1.8中已弃用。使用。length属性代替

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

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

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

实际上,.size()不是纯粹的JavaScript方法,有一个accessor属性.size的Set对象,有点像.size(),但它不是一个函数方法,就像我说的,它是一个accessor属性的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

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

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

最新更新