您现在的位置是:首页 > 正文

JavaScript数组

2024-02-01 00:38:58阅读 2

数组

1. 定义

数组(array)是按次序排列的⼀组值。每个值的位置都有编号(从0开始),整个数组⽤⽅括号表⽰。

var arr = ['a', 'b', 'c'];

上⾯代码中的 a 、 b 、 c 就构成⼀个数组,两端的⽅括号是数组的标志。 a 是0号位置, b 是1号位置, c 是2号位置。
除了在定义时赋值,数组也可以先定义后赋值。

var arr = []; 
 
arr[0] = 'a'; 
arr[1] = 'b'; 
arr[2] = 'c';
  • 任何类型的数据,都可以放⼊数组。
var arr = [   
	{a: 1},   
	[1, 2, 3],   
	function() {return true;} 
]; 
 
arr[0] // Object {a: 1} 
arr[1] // [1, 2, 3] 
arr[2] // function (){return true;}
  • 如果数组的元素还是数组,就形成了多维数组。
var a = [[1, 2], [3, 4]]; 
a[0][1] // 2 
a[1][1] // 4
2. 数组的本质

本质上,数组属于⼀种特殊的对象。 typeof 运算符会返回数组的类型是 object 。

typeof [1, 2, 3] // "object"

上⾯代码表明, typeof 运算符认为数组的类型就是对象。

3. length 属性

数组的 length 属性,返回数组的成员数量。

['a', 'b', 'c'].length // 3

length 属性是可写的。如果⼈为设置⼀个⼩于当前成员个数的值,该数组的成员会⾃动减少到 length 设置的值。

var arr = [ 'a', 'b', 'c' ];
arr.length // 3 
 
arr.length = 2; 
arr // ["a", "b"]
4. in 运算符

检查某个键名是否存在的运算符 in ,适⽤于对象,也适⽤于数组。

var arr = [ 'a', 'b', 'c' ]; 
2 in arr  // true 
'2' in arr // true 
4 in arr // false

上⾯代码表明,数组存在键名为 2 的键。由于键名都是字符串,所以数值 2 会⾃动转成字符串。 注意,如果数组的某个位置是空位, in 运算符返回 false 。

var arr = []; 
arr[100] = 'a'; 
 
100 in arr // true 
1 in arr // false
5. for…in 循环和数组的遍历

for…in 循环不仅可以遍历对象,也可以遍历数组,毕竟数组只是⼀种特殊对象。

var a = [1, 2, 3]; 
 
for (var i in a) {   
	console.log(a[i]); 
} 
// 1 
// 2 
// 3

但是, for…in 不仅会遍历数组所有的数字键,还会遍历⾮数字键。

var a = [1, 2, 3]; 
a.foo = true; 
 
for (var key in a) {   
	console.log(key);
}
 // 0 
 // 1 
 // 2 
 // foo

数组的遍历可以考虑使⽤ for 循环或 while 循环。

var a = [1, 2, 3]; 
 
// for循环 
for(var i = 0; i < a.length; i++) { 
  	console.log(a[i]); 
} 
 
// while循环 
var i = 0; 
while (i < a.length) {   
	console.log(a[i]);   i++; 
} 
 
var l = a.length; 
while (l--) {   
	console.log(a[l]); 
}

网站文章

  • AVFoundation的介绍

    AVFoundation的介绍

    一、简述 AVFoundation是一个OC媒体数据的高级框架。AVFoundation的构建考虑到了目前的硬件环境和应用程序,其设计过程高度依赖多线程机制。充分利用了多核硬件的优势并大量使用block和GCD机制,将复杂的计算机进程放到了后台线程运行。会自动提供硬件加速操作,确保在大部分设备上应用程序能以最佳性能运行。该框架就是针对64位处理器设计的,可以发挥64位处理器的所有优势。 二

    2024-02-01 00:38:50
  • excel粘贴时出现故障_Word粘贴时出现“文件未找到:MathPage.WLL”的解决方案

    excel粘贴时出现故障_Word粘贴时出现“文件未找到:MathPage.WLL”的解决方案

    问题:每次装完MathType后,在word里面进行粘贴操作时,总是出现“运行时错误‘53’:文件未找到:MathPage.WLL”。面对这种情况每次都要花点时间找真正的解决方案,然而并不是所有人提供...

    2024-02-01 00:38:43
  • 输出1~n的全排列(递归法) 热门推荐

    #include #include #include #include using namespace std; int a[1000]={0};//保存数列的数组,默认每个位置都是0 int book[1000]={0};//记录一个数有没有在数组里 int n;//1~n void A(int pos)//向a[pos]填数 { if(pos==n+1)//递归边界

    2024-02-01 00:38:14
  • oracle commit提交到底作了什么

    oracle commit所作的工作如下:1,产生一个scn 与此事务相关联的undo tablespace的itl标志为提交即flag为-c--; 并且为此事务分配一个唯一的scn并记录到undo tablespace的事...

    2024-02-01 00:38:07
  • JAVA继承和多态详细讲解

    JAVA继承和多态详细讲解

    面向对象编程的重要知识:继承和多态。通过类的继承机制,可以使用已有的类为基础派生出新类,无需编写重复的程序代码,很好地实现程序代码复用。多态是面向对象编程中继封装和继承之后的另一大特征,它具体是指同一...

    2024-02-01 00:37:38
  • Java二进制小数表示_《Java编程的逻辑》笔记9--小数的二进制表示

    Java二进制小数表示_《Java编程的逻辑》笔记9--小数的二进制表示

    小数计算为什么会出错?简要答案实际上,不是运算本身会出错,而是计算机根本就不能精确的表示很多数,比如0.1这个数。计算机是用一种二进制格式存储小数的,这个二进制格式不能精确表示0.1,它只能表示一个非...

    2024-02-01 00:37:29
  • C#使用OpenCVSharp进行轮廓检测

    在计算机视觉领域中,轮廓检测是一项常见的任务,它可以帮助我们找到图像中的物体边缘或形状边界。在本文中,我们将介绍如何使用C#和OpenCVSharp库实现轮廓检测。在上述代码中,我们首先读取了输入图像...

    2024-02-01 00:37:23
  • 通过PXE服务器批量安装系统

    通过PXE批量部署服务器

    2024-02-01 00:36:56
  • c语言基础局部变量与全局变量

    局部变量1. 在函数内部定义的变量2. 生命周期:从变量定义到函数结束3. 作用域:从变量定义到函数结束全局变量1. 在函数外部定义的变量2. 生命周期:从程序创建到程序销毁(全局变量的地址一旦文件编...

    2024-02-01 00:36:49
  • Android性能优化之-LeakCannary

    Android性能优化之-LeakCannary

    LeakCanary使用 LeakCanary是一个用于Android的内存泄漏检测库.本文从如下四点分析源码 检查哪些内存泄漏 检查内存泄漏的时机 如何判定内存泄漏 如何分析内存泄漏(只有一点点,可...

    2024-02-01 00:36:42