在 JavaScript 中,数组是用于存储有序集合的对象。如果只需要定义一个简单的数组,使用数组字面量是最简单和最直接的方法,这是最常见的方式。可以直接使用方括号[]来创建数组,并在其中列出数组元素,元素之间用逗号分隔,跟着小编一起详细了解下。
一、JavaScript 中定义数组的方法
在 JavaScript 中,数组是可变的有序集合,可通过以下方式定义:
1. 字面量语法
javascriptconst arr1 = []; // 空数组const arr2 = [1, 2, 3, "hello", true]; // 包含多种数据类型
2. 构造函数语法
javascriptconst arr3 = new Array(); // 空数组const arr4 = new Array(5); // 创建长度为5的空槽数组(稀疏数组)const arr5 = new Array(1, 2, 3); // 直接初始化元素
3. 特殊方法
Array.of():避免构造函数因参数数量产生的歧义。
javascriptconst arr6 = Array.of(5); // [5],而非长度为5的空数组
Array.from():从类数组对象(如 arguments、NodeList)或可迭代对象创建数组。
javascriptconst arr7 = Array.from("hello"); // ["h", "e", "l", "l", "o"]
二、JavaScript 数组常用方法
数组方法可分为 修改原数组 和 返回新数组 两类:
1. 修改原数组的方法
push() / pop():在末尾添加/删除元素。
javascriptarr.push(4); // 添加元素,返回新长度arr.pop(); // 删除末尾元素,返回被删除的值
unshift() / shift():在开头添加/删除元素。
splice():添加/删除/替换任意位置的元素。
javascriptarr.splice(1, 2, "a", "b"); // 从索引1开始删除2个元素,并插入"a","b"
reverse():反转数组顺序。
sort():按 Unicode 码点排序(可自定义排序规则)。
javascriptarr.sort((a, b) => a - b); // 升序排序
2. 返回新数组的方法
concat():合并数组。
javascriptconst newArr = arr1.concat(arr2, [5, 6]);
slice():截取子数组。
javascriptconst subArr = arr.slice(1, 3); // 包含索引1,不包含索引3
map():对每个元素执行操作并返回新数组。
javascriptconst doubled = arr.map(x => x * 2);
filter():返回符合条件的元素。
javascriptconst evens = arr.filter(x => x % 2 === 0);
reduce() / reduceRight():累计计算。
javascriptconst sum = arr.reduce((acc, cur) => acc + cur, 0);
3. 查询与遍历方法
indexOf() / lastIndexOf():查找元素索引。
includes():检查是否包含某值。
find() / findIndex():返回第一个满足条件的元素/索引。
forEach():遍历数组(无返回值)。
some() / every():检查是否至少一个/全部元素满足条件。
4. 其他实用方法
join():将数组转为字符串。
javascriptconst str = arr.join(", "); // "1, 2, 3"
flat():扁平化嵌套数组。
javascriptconst flatArr = [1, [2, [3]]].flat(2); // [1, 2, 3]
三、注意事项
数组是对象类型,typeof [] 返回 "object"。
稀疏数组(如 new Array(3))可能引发意外行为,建议避免直接创建。
高阶方法(如 map、filter)不会修改原数组,但需注意回调函数中的副作用。
通过灵活组合这些方法,可以高效处理数据集合。
以上就是关于JavaScript 中定义数组的方法介绍,每种方法都有其适用的场景,可以根据具体需求选择合适的方式来定义数组,使用展开运算符可以在不丢失原有数组的情况下添加或合并数组。