编程笔记 html5&css&js 088 JavaScript 数组
一、定义和创建数组
- 使用字面量形式创建:
var arrayExample = [value1, value2, value3, ...];
- 使用
Array
构造函数创建(不推荐,除非需要指定长度或初始化部分元素):var arrayExample = new Array(element0, element1, ...); // 或者 var arrayExample = new Array(length); // 创建指定长度但不填充元素的数组
二、访问数组元素
数组元素通过索引访问,索引从0开始。
javascript var numbers = [1, 2, 3, 4]; console.log(numbers[0]); // 输出: 1
三、数组属性与方法
length
:返回数组中的元素个数。- 常用数组操作方法:
push(item1, item2, ...)
: 向数组末尾添加一个或多个元素,并返回新数组的长度。pop()
: 删除并返回数组最后一个元素。shift()
: 删除并返回数组的第一个元素。unshift(item1, item2, ...)
: 在数组开头添加一个或多个元素,并返回新数组的长度。splice(index, deleteCount, item1, ...)
: 从数组中删除、插入或替换元素。indexOf(searchElement[, fromIndex])
: 返回元素在数组中的索引位置,找不到则返回-1。includes(value[, fromIndex])
: 检查数组是否包含某个值,是则返回true,否则false。
四、迭代和遍历数组
- 使用
for
循环遍历:for (var i = 0; i < array.length; i++) { console.log(array[i]); }
- 使用
for...of
循环(ES6):for (const item of array) { console.log(item); }
- 使用
forEach()
方法:array.forEach((item, index, arr) => { console.log(item); });
- 使用
map()
,filter()
,reduce()
等高阶函数进行转换和操作。
五、数组的特性
- JavaScript数组是对象,它们也有键值对,但是其键是数字类型的索引。
- 数组索引可以是负数,表示从数组结尾开始计数(-1表示最后一个元素)。
- 虽然数组通常用来存储同质数据,但在JavaScript中,数组元素可以是任何类型,包括对象、函数甚至其他数组。
- 可以直接在数组上设置非连续的索引(即“稀疏数组”),但这可能会导致某些操作(如
forEach()
)的行为不易预测。
六、数组方法和迭代器(如keys()
, values()
, entries()
)
- ES6引入了更多的数组迭代方法,这些方法使得处理数组时更加便捷和高效。
以上概述涵盖了JavaScript数组的核心概念和基本操作,实际使用中还有更多高级功能,例如数组的浅拷贝和深拷贝、合并、排序、查找特定元素等。
七、数组的用途总结
数组在JavaScript中的主要用途包括:
-
数据存储:
- 数组提供了在单个变量中存储多个值的能力,这样可以高效地组织和管理大量相关数据。例如,存储一系列的数字、字符串、对象或其他数据类型。
-
集合操作:
- 数组支持各种内置方法,使得对元素进行添加、删除、查找、排序、过滤等操作变得简单且高效。例如,使用
push()
添加元素,pop()
删除最后一个元素,sort()
对元素排序,以及map()
、reduce()
、filter()
等高阶函数处理数组内容。
- 数组支持各种内置方法,使得对元素进行添加、删除、查找、排序、过滤等操作变得简单且高效。例如,使用
-
循环遍历:
- 数组便于通过循环(如
for
循环、forEach()
方法)进行遍历,实现对集合内所有元素执行相同的操作。
- 数组便于通过循环(如
-
数据传输与共享:
- 在函数之间传递一组数据时,数组作为参数或返回值是非常方便的结构。
-
构建复杂数据结构:
- 数组可以嵌套在其他数组或对象内部,从而构建多维数组或多级关联数据结构,用于表示表格数据、树状结构等更复杂的场景。
-
算法实现:
- 许多算法和数据处理任务都依赖于数组来存储和操作中间或最终结果,例如搜索算法、排序算法、统计分析等。
-
事件监听器列表:
- 在Web开发中,数组常被用来存储DOM元素的事件监听器回调函数。
总之,数组是JavaScript中处理有序数据集合的核心工具,它的灵活性和丰富的API使其在编程实践中扮演着至关重要的角色。