数组一些细节

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组一些细节相关的知识,希望对你有一定的参考价值。

1.数组是特殊的对象,使用方括号访问数组元素就像用方括号访问对象的属性一样,JS将指定的数字索引值转换为字符串(例如 1 变为 ‘1’);来当做属性名来使用。

2.索引值是 0 ~ 2的32次方-2之间的整数。

3.(1)可以用负数或非整数来索引数组,这时,数值转换为字符串,字符串作为属性名来使用。

   (2)如果使用非负整数的字符串,他被当做数组索引,而不是对象属性。

 (3)当使用一个浮点数和一个非负整数相等,该浮点数被当做数组索引。

  

a[-1.23] = true; // 创建一个名为‘-1.23’的属性
a[‘1000‘] = 0; // 这是数组的第1001个元素
a[1.000]  // 和a[1]相等 

4.拥有length属性值的有:数组,类数组,字符串,函数

  (1). 数组的length值代表数组的长度,若为非稀疏数组,则代表数组的元素个数。类数组类似数组。

  (2). 字符串的length值代表字符串的长度。

  (3). 函数的length值代表函数形参的个数。(注意不是实际传入的数目,而是函数定义时设置的形参数目)

 有关数组length修改的一些注意:

  (1)当用push或其他方式向数组添加新元素,length值自动加1.

  (2)当设置length值为一个小于当前长度的非负整数n时,当前数组中那些索引值大于或等于n的元素将被删除。

  (3) 当设置length值为一个大于当前长度的非负整数时,将会在尾部创建空区域,但并不添加新元素,数组会变成稀疏数组

5.数组遍历时跳过一些不合法数据:

  (1)跳过null 、undefined和不存在的元素   if(!arr[i]) continue; 

   (2) 跳过undefined和不存在的元素, if(a[i] === undefined) continue; 

   (3) 跳过不存在的元素  if(!(i in arr)) continue; 

                

 

以上是关于数组一些细节的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?

如何让 Leanback 的详细信息片段不占用整个屏幕?

数组一些细节

VSCode自定义代码片段—— 数组的响应式方法

几个关于js数组方法reduce的经典片段