HLJ 发布于
2025-06-11 09:41:54
0阅读

JavaScript 数组 (Array)

上一篇文章:

JavaScript 字符串

下一篇文章:

JavaScript 数组方法

JavaScript 数组 (Array)

JavaScript 数组是用于存储多个值的有序集合。每个值称为元素,每个元素在数组中有一个数字位置(索引)。

创建数组

// 字面量方式
let fruits = ['Apple', 'Banana', 'Orange'];

// Array 构造函数
let numbers = new Array(1, 2, 3, 4);

// 创建空数组
let emptyArray = [];
let anotherEmpty = new Array();

基本操作

访问元素

let firstFruit = fruits[0]; // 'Apple'
let lastFruit = fruits[fruits.length - 1]; // 'Orange'

修改元素

fruits[1] = 'Pear'; // 修改第二个元素

数组长度

let count = fruits.length; // 3

常用方法

添加/删除元素

// 末尾添加
fruits.push('Mango'); 

// 开头添加
fruits.unshift('Strawberry');

// 删除最后一个
let last = fruits.pop();

// 删除第一个
let first = fruits.shift();

查找元素

let position = fruits.indexOf('Banana'); // 返回索引,找不到返回-1
let exists = fruits.includes('Apple'); // true/false

切片和拼接

// 切片 - 不改变原数组
let citrus = fruits.slice(1, 3); 

// 拼接 - 可以添加/删除元素
fruits.splice(1, 2, 'Lemon', 'Kiwi');

遍历数组

// forEach
fruits.forEach(function(item, index) {
  console.log(index, item);
});

// map
let lengths = fruits.map(fruit => fruit.length);

// filter
let longFruits = fruits.filter(fruit => fruit.length > 5);

其他实用方法

// 连接数组
let allFruits = fruits.concat(['Grape', 'Melon']);

// 反转
fruits.reverse();

// 排序
fruits.sort();

// 归约
let numbers = [1, 2, 3, 4];
let sum = numbers.reduce((total, num) => total + num, 0);

多维数组

let matrix = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];

console.log(matrix[1][2]); // 6

ES6+ 新特性

扩展运算符

let moreFruits = [...fruits, 'Pineapple', 'Blueberry'];

解构赋值

let [first, second] = fruits;

Array.from() 和 Array.of()

let arrayLike = {0: 'a', 1: 'b', length: 2};
let arr = Array.from(arrayLike); // ['a', 'b']

let nums = Array.of(1, 2, 3); // [1, 2, 3]

注意事项

  1. JavaScript 数组是动态的,可以自动调整大小
  2. 数组可以包含不同类型的元素
  3. 数组是对象,typeof 数组返回 "object"
  4. 使用 Array.isArray() 检测是否为数组

数组是 JavaScript 中最常用的数据结构之一,掌握数组操作对于 JavaScript 开发至关重要。

当前文章内容为原创转载请注明出处:http://www.good1230.com/detail/2025-06-11/793.html
最后生成于 2025-06-13 20:52:43
上一篇文章:

JavaScript 字符串

下一篇文章:

JavaScript 数组方法

此内容有帮助 ?
0