当前位置: 首页 > 知识库问答 >
问题:

大堆size()与数组。长

牧飞鹏
2023-03-14

这两者有什么区别?

所以我知道数组。size()是数组时的函数。长度是一个属性。是否有一个使用一个而不是另一个的用例?一个更有效吗?(我认为.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

共有3个答案

鄂昌胤
2023-03-14

. 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

所以在你的情况下,你应该使用。长度属性。

宰宣
2023-03-14

<代码>。size()不是数组的原生JS函数(至少在我所知的任何浏览器中都不是)。

<代码>。应使用长度。

<代码>。size()。

您的浏览器上可能有一些插件破坏了阵列原型。

越飞鸾
2023-03-14

始终使用长度属性

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

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

 类似资料:
  • 获取数组,对象或字符串的大小。 Get type of val (array, object or string). Use length property for arrays. Use length or size value if available or number of keys for objects. Use size of a Blob object created from v

  • 我在WebSphere管理控制台中:Application servers>as-name>Process definition>Java Virtual Machine。 有一个字段“最大堆大小”。 指定最大堆的两个选项有什么区别?

  • 我的Android应用程序中有一个ArrayList,其中有两个项目。然而,它的size方法返回3。我知道这听起来很简单也很愚蠢,但事情是这样的: 为什么会发生这种情况?ArrayList的大小如何返回不正确的数字?当我迭代列表时,这会导致空指针异常。

  • 我在[17,98,89,42,67,54,89,25,38]中有一个数字列表,从左到右插入到一个空堆中。生成的堆是什么?

  • 我是Java的初学者,刚开始使用Intellij作为我的IDE。 当我使用它时,有时会延迟。 我更改了我的 xms 和 xmx 以获得更大的堆大小(xms = 1024,xmx = 2048),但它抛出了一个错误。 所以,我把它回滚了。 错误消息是这样的:“初始堆大小设置为大于最大堆大小的值”。 有什么问题? 如果可能,如何增加最大堆大小? 我用的是笔记本电脑,它有8GB内存。x64Intelli

  • 我明白了在递归中,每个递归调用是如何堆栈在堆栈上的;如果超过堆栈限制,则会出现堆栈溢出。那么为什么Python的返回一个数字;递归调用的最大深度? 这不是取决于我在递归函数中做了什么吗?还是以某种方式将变量保存在堆栈以外的其他地方?它是如何工作的?