JavaScript变量和数据类型(三)数组

本文详细介绍了JavaScript中的数组,包括创建数组的两种方式、数组元素的读写、稀疏数组、数组长度、添加删除元素的方法,以及数组的各种操作如sort、reverse、slice、splice等。此外,还讨论了多维数组和数组遍历的技巧。
摘要由CSDN通过智能技术生成

数组是一组按顺序排列的集合,集合的每个值称为元素。而每个元素在数组中有一个位置,以数字表示,称为索引。索引的起始值为0。JavaScript的数组可以包括任意数据类型。例如:

[1, 2, 3.14, 'Hello', null, true];

上述数组包含6个元素。数组用[]表示,元素之间用,分隔。

创建数组

可以使用数组字面量和 new 关键字来创建数组。

使用数组字面量创建数组(推荐)

var empty = [];                 // 没有元素的数组
var primes = [2, 3, 5, 7, 11];  // 有5个数值的数组
var misc = [1.1, true, "a"];    // 3个不同类型的元素

// 数组直接量中的值不一定要是常量,可以是任意的表达式
var base = 1024;
var table = [base, base+1, base+2, base+3];

// 也可以包含对象直接量或其他数组直接量
var b = [[1, {
   x:1, y:2}], [2, {
   x:3, y:4}]];

注意,不要忽略数组字面量的最后一个元素,仅以逗号结尾。下面几个案例,在不同的浏览器下,可能会被识别成2个元素,也有可能识别成3个元素,而造成程序bug。例如:

var nums = [,,,];               // 不好的写法
var names = ["stone",,];        // 不好的写法
var colors = ["red","green",];  // 不好的写法

使用 new 关键字创建数组

使用 new 关键字调用构造函数 Array() 是创建数组的另一种方法,可以用三种方式调用构造函数。例如:

// 调用时没有参数
var a = new Array();

// 调用时有一个数值参数,它指定长度
var a = new Array(10); 

// 显式指定多个数组元素或者数组的一个非数值元素
var a = new Array(5, 4, 3, 2, 1, "testing");

数组元素的读和写

使用 [] 操作符来访问数组中的一个元素。数组的引用位于方括号的左边。方括号中是一个返回非负整数值的任意表达式。使用该语法既可以读又可以写数组的一个元素。例如:

var arr = [1, 2, 3.14, 'Hello', null, true];
var value = arr[0]; // 返回索引为0的元素,即1
var value = arr[5]; // 返回索引为5的元素,即true
arr[6]=99; // 写第6个元素
var value = arr[7]; // 索引超出了范围,返回undefined

稀疏数组

稀疏数组就是包含从0开始的不连续索引的数组。通常,数组的 length 属性值代表数组中元素的个数。如果数组是稀疏的,length 属性值大于元素的个数。可以用 Array() 构造函数或简单地指定数组的索引值大于当前的数组长度来创建稀疏数组。

a = new Array(5);   // 数组没有元素,但是 a.length = 5
a = [];             // 创建一个空数组,a.length = 0
a[1000] = 0;        // 添加一个元素,a.length 被自动更新为1001

足够稀疏的数组通常在实现上比稠密的数组更慢、内存利用率更高,在这样的数组中查找元素的时间与常规对象属性的查找时间一样长。

需要注意的是,当省略数组直接量中的值时(使用连续的逗号,比如 [1,,3] ),这时所得到的数组也是稀疏数组,省略掉的值是不存在的:

var a1 = [,'1','2'];    // 此数组长度是3 
var a2 = [undefined]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值