
JavaScript数组是用于存储有序数据集合的特殊对象,其键为数字索引,值可以是任意数据类型。TypeScript在使用数组时能有效弥补一些不足。数组包含多种方法,方便管理有序数据,并具有length属性。由于数组专为有序数据设计,因此开发者应遵循其特性进行使用。需要注意的是,数组是对象,因此它们是通过引用复制,而非值复制。
语法
let arr = new Array(); let arr = [];
示例
let arr = ["apple", "banana", "peach"]; arr[0]; // "apple" arr[3]; // undefined arr.length; // 3
推荐使用let arr = [];,因为它更简洁且不易出错。例如:
立即学习“Java免费学习笔记(深入)”;
let arr = new Array(2); // 这不会创建一个[2]的数组 alert(arr[0]); // undefined! 没有元素 alert(arr.length); // length 2
pop、push、shift、unshift
-
pop:移除并返回数组的最后一个元素。 -
push:在数组末尾添加元素。 -
shift:移除并返回数组的第一个元素。 -
unshift:在数组开头添加元素。
由于元素索引会重新排序,因此使用这些方法需要谨慎。
循环遍历数组
建议使用for...of循环遍历数组元素,避免使用for...in循环,因为它会遍历数组的所有属性,包括length等非索引属性,且效率较低。
常用数组方法
数组提供了许多方法,这里只介绍一些容易混淆的概念。
slice(start, end)
返回一个包含指定部分元素的新数组(不包含end索引的元素)。不修改原始数组。
let arr = ["apple", "banana", "peach", "orange", "grapes"]; let arr2 = arr.slice(1, 3); console.log(arr2); // ["banana", "peach"] console.log(arr); // ["apple", "banana", "peach", "orange", "grapes"];
不指定start和end参数可以复制整个数组。
let arr3 = arr.slice(); console.log(arr3); // 复制后的数组
splice(pos, deleteCount, ...items)
用于删除、插入或替换数组元素。
-
删除: 从指定位置(
pos)开始删除deleteCount个元素。
let arr = ["apple", "banana", "peach", "orange", "grapes"]; arr.splice(2, 2); console.log(arr); // ["apple", "banana", "grapes"]
splice方法会返回被删除的元素。
let removedItems = arr.splice(2, 2); console.log(removedItems); // ["peach", "orange"]
-
插入: 在指定位置(
pos)插入新的元素(...items),不删除任何元素。
arr.splice(1, 0, "strawberry"); console.log(arr); // ["apple", "strawberry", "banana", "grapes"]
- 替换: 同时删除和插入元素。
arr.splice(1, 2, "strawberry", "mango"); console.log(arr); // ["apple", "strawberry", "mango", "grapes"]
split(separator)和join(glue)
split:根据指定分隔符将字符串分割成数组。
join:将数组元素连接成字符串,用指定分隔符隔开。
let str = "apple, banana, peach";
let arr = str.split(", ");
console.log(arr); // ["apple", "banana", "peach"]
let arr = ["apple", "banana", "peach"];
let str = arr.join("; ");
console.log(str); // "apple; banana; peach"
总结
学习数组的访问方式(arr[1])以及理解其底层机制(使用方括号访问数字索引)非常重要。 通过学习和实践,可以更好地理解JavaScript数组的工作原理,并更有效地使用它们。










