当前位置:嗨网首页>书籍在线阅读

21-数组

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

3.14 数组

数组是JavaScript的一种特殊类型的对象。不像一般的对象,数组的内容天生具有自然排序特性(元素0始终出现在元素1之前),它的键是数字,并且是有序的。数组有很多有用的方法,因而具有强大的传递信息的能力,将在第8章学习数组。

如果读者是从其他编程语言转过来的,会发现JavaScript数组是集其他语言优点于一身的混合体,它拥有C语言数组的高效索引,同时拥有强大的动态数组和链表的特性。JavaScript中的数组有以下特性:

  • 数组长度不固定,可以随时添加和删除元素。
  • 数组中元素的类型是多样的,每个元素都可以是任意类型。
  • 数组下标从0开始。也就是说,数组的第一个元素是元素0。
由于数组是具有一些额外功能的特殊对象,所以可以给数组指定非数字(部分或全部)的键。虽然可以这么做,但它违背了数组的设计初衷,会造成混乱,并且增加了定位bug的难度,所以请尽量避免这样做。

JavaScript中用方括号创建数组字面量,多个元素之间用逗号隔开:

const a1 = [1, 2, 3, 4];                          // 包含数值的数组
const a2 = [1, 'two', 3, null];                   // 包含混合类型的数组
const a3 = [                                      // 跨越多行的数组
    "What the hammer?  What the chain?",
    "In what furnace was thy brain?",
    "What the anvil?  What dread grasp",
    "Dare its deadly terrors clasp?",
];
const a4 = [                                      // 包含对象的数组
    { name: "Ruby", hardness: 9 },
    { name: "Diamond", hardness: 10 },
    { name: "Topaz", hardness: 8 },
];
const a5 = [                                     // 包含数组的数组
    [1, 3, 5], 
    [2, 4, 6], 
]; 

数组有一个属性叫length,它返回数组元素的个数:

const arr = ['a', 'b', 'c'];
arr.length;                                      // 3

在方括号中使用数字下标可以访问数组的指定元素(类似于访问对象的属性):

const arr = ['a', 'b', 'c'];
// 获取第一个元素:
arr[0];                                         // 'a'
// 数组最后一个元素的下标是arr.length-1:
arr[arr.length - 1];                          // 'c'

如果要改变数组中特定下标的元素的值,只要给它赋一个新值就可以了:[5]

const arr = [1, 2, 'c', 4, 5];
arr[2] = 3;     // arr 的值为[1, 2, 3, 4, 5]

在第8章中会学习更多修改数组及其内容的技巧。