什么是javascript数组_如何遍历数组元素?

JavaScript数组是存储多个值的有序集合,用方括号创建(如["苹果","香蕉"]),通过索引访问修改元素,常用for、for...of及map/filter/reduce遍历,避免for...in和遍历时修改数组。

JavaScript 数组是用来存储多个值的有序集合,它用一个变量名就能管理一堆数据,比如一串数字、一列名字,或者混合类型的数据。

数组怎么创建?

最常用的是方括号语法:

let fruits = ["苹果", "香蕉", "橙子"];
let numbers = [1, 2, 3, 4];
let mixed = ["hello", 42, true, null];

也可以用 Array() 构造函数,但一般不推荐,容易出歧义(比如 new Array(5) 创建的是长度为 5 的空数组,不是包含数字 5 的数组)。

怎么访问和修改数组元素?

数组元素按索引(从 0 开始)访问:

console.log(fruits[0]); // "苹果"
fruits[1] = "芒果"; // 把"香蕉"替换成"芒果"

数组长度通过 length 属性获取,它会自动更新:

console.log(fruits.length); // 3

常用的遍历方式有哪些?

根据需求选合适的方法,不追求“最酷”,而要清楚每种的适用场景:

  • for 循环:最基础、最灵活,适合需要索引、提前退出或复杂控制逻辑的情况
    for (let i = 0; i   console.log(i + ": " + fruits[i]);
    }
  • forEach():简洁,适合“对每个元素做点事”,但不能用 breakreturn 中断循环
    fruits.forEach((item, index) => {
      console.log(index + ": " + item);
    });
  • for...of:现代写法,直接拿到元素值,语义清晰,支持 break/continue
    for (const fruit of fruits) {
      console.log(fruit);
    }
  • map() / filter() / reduce():不叫“遍历”,而是“转换”“筛选”“聚合”,返回新数组或值,不修改原数组,适合函数式编程思路
    const upperFruits = fruits.map(f => f.toUpperCase());

遍历时要注意什么?

几个实际中容易踩的坑:

  • 别用 for...in 遍历数组——它本是为对象属性设计的,可能遍历到原型方法或非数字键,顺序也不保证;
  • 修改正在遍历的数组(比如边遍历边 pushsplice),可能导致漏项或死循环;
  • 箭头函数里没有自己的 this,如果回调里要用 this,注意绑定或换普通函数。

基本上就这些。数组是 JS 最常用的数据结构之一,掌握好创建、访问和几种遍历方式,日常开发就稳了一大半。