在 JavaScript 中,数组(Array)是一种用来存储多个值的单一变量。数组中的元素可以是任何类型,包括数字、字符串、对象,甚至其他数组(多维数组)。数组是通过方括号 [] 来定义的,元素之间用逗号分隔。

创建数组

可以使用数组字面量或者 Array 构造函数来创建数组。

// 数组字面量
var fruits = ["Apple", "Banana", "Cherry"];
const person = ["John", "Doe", 46];
 
// Array 构造函数
var numbers = new Array(1, 2, 3);
const cars = new Array("Saab", "Volvo", "BMW");
 
// create an array, and then provide the elements:
const cars = [];
cars[0] = "Saab";
cars[1] = "Volvo";
cars[2] = "BMW";

但是使用 new Array 创建数组时需要注意:

// Create an array with 40 undefined elements:
const points = new Array(40);

访问数组元素

访问数组元素通过索引进行,索引是从 0 开始的。

var firstFruit = fruits[0]; // Apple
var secondNumber = numbers[1]; // 2

数组属性和方法

数组具备一些属性和方法来处理其元素:

  • length: 数组的长度或元素的数量。
  • toString():转换为字符串。
  • push(): 在数组的末尾添加一个或多个元素,并返回新数组的长度。
  • pop(): 移除数组的最后一个元素并返回那个元素。
  • shift(): 移除数组的第一个元素并返回那个元素,其余元素向前移动。
  • unshift(): 在数组的开头添加一个或多个元素,并返回新的长度。
  • slice(start, end): 返回数组的一个片段或子数组。
  • splice(start, deleteCount, item1, item2, ...): 用于添加或删除数组中的元素。
  • reverse(): 颠倒数组中元素的顺序。
  • concat(): 合并两个或多个数组,并返回一个新数组。
  • join(separator): 把数组的所有元素放入一个字符串,元素通过指定的分隔符进行分隔。
  • indexOf(): 搜索数组中的元素,并返回它所在的位置。
  • find(): 返回数组中满足提供函数条件的第一个元素的值。
  • findIndex(): 返回数组中满足提供函数条件的第一个元素的索引。
  • forEach(): 对数组的每个元素执行一次给定的函数。
  • map(): 创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。
  • filter(): 创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
  • reduce(): 对累加器和数组中的每个元素(从左到右)应用一个函数,将其减少为单个值。
  • forEach(callback(element, index, array)): 它遍历数组的每个元素,为每个元素执行回调函数,该方法没有返回值。
  • map(callback(element, index, array)): 它创建一个新数组,其结果是数组中的每个元素调用回调函数的结果。
  • filter(callback(element, index, array)): 它创建一个新数组,包含所有通过回调函数测试的元素。
  • reduce(callback(accumulator, currentValue, currentIndex, array), initialValue): 它对数组中的每个元素执行一个由你提供的“reducer”回调函数,并将其结果汇总为单个返回值。
  • every(callback(element, index, array)): 如果数组中的所有元素都满足测试函数,则返回  true,否则返回  false
  • some(callback(element, index, array)): 如果数组中至少有一个元素满足测试函数,则返回  true,否则返回  false
  • find(callback(element, index, array)): 返回数组中满足测试函数的第一个元素的值,否则返回  undefined
  • findIndex(callback(element, index, array)): 返回数组中满足测试函数的第一个元素的索引,否则返回  -1
  • includes(value): 检测数组是否包含某个值,如果是返回  true,否则返回  false

JavaScript Array Reference

How to Recognize an Array

const fruits = ["Banana", "Orange", "Apple"];
let type = typeof fruits; // object
 
// plan a
Array.isArray(fruits);
// plan b
fruits instanceof Array;

示例

var colors = ["Red", "Green", "Blue"];
colors.unshift("Magenta"); // 添加 'Magenta' 到数组的开头
var firstColor = colors.shift(); // 移除并返回第一个元素 'Magenta'
 
var newColors = colors.map(function (color) {
  return color.toUpperCase();
});
 
var numbers = [4, 2, 5, 1, 3];
numbers.sort(function (a, b) {
  return a - b;
});