JavaScript中的数组是一种强大而灵活的数据结构,用于存储和操作一组值。本文将介绍如何创建和访问数组,以及JavaScript数组常用的方法,如push、pop、shift、unshift和slice等。
一、创建和访问数组
在JavaScript中,可以使用以下方式创建一个数组:
// 使用字面量方式创建数组
let fruits = ['apple', 'banana', 'orange'];// 使用Array构造函数创建数组
let numbers = new Array(1, 2, 3, 4, 5);
数组中的元素可以通过索引进行访问,索引从0开始:
console.log(fruits[0]); // 输出:'apple'
console.log(numbers[2]); // 输出:3
二、push和pop方法
push方法用于向数组末尾添加一个或多个元素:
fruits.push('grape');
console.log(fruits); // 输出:['apple', 'banana', 'orange', 'grape']
pop方法用于删除并返回数组的最后一个元素:
let lastFruit = fruits.pop();
console.log(lastFruit); // 输出:'grape'
console.log(fruits); // 输出:['apple', 'banana', 'orange']
三、shift和unshift方法
shift方法用于删除并返回数组的第一个元素:
let firstFruit = fruits.shift();
console.log(firstFruit); // 输出:'apple'
console.log(fruits); // 输出:['banana', 'orange']
unshift方法用于向数组的开头添加一个或多个元素:
fruits.unshift('kiwi', 'mango');
console.log(fruits); // 输出:['kiwi', 'mango', 'banana', 'orange']
四、slice方法
slice方法用于从数组中提取出指定范围的元素,返回一个新数组,不会修改原数组:
let citrusFruits = fruits.slice(1, 3);
console.log(citrusFruits); // 输出:['mango', 'banana']
console.log(fruits); // 输出:['kiwi', 'mango', 'banana', 'orange']
五、其他数组方法
- concat:用于合并两个或多个数组。
- indexOf和lastIndexOf:用于查找指定元素在数组中的索引。
- join:将数组中的所有元素连接成一个字符串。
- reverse:反转数组中的元素顺序。
- sort:对数组进行排序。
- forEach、map、filter、reduce等高阶函数:用于对数组进行迭代和处理。
const array1 = [1, 2, 3];
const array2 = [4, 5, 6];
const newArray = array1.concat(array2);
console.log(newArray); // Output: [1, 2, 3, 4, 5, 6]const array = [1, 2, 3, 4, 5, 4];
console.log(array.indexOf(4)); // Output: 3
console.log(array.lastIndexOf(4)); // Output: 5const array = ['Hello', 'World', '!'];
const result = array.join(' ');
console.log(result); // Output: "Hello World !"const array = [1, 2, 3, 4, 5];
array.reverse();
console.log(array); // Output: [5, 4, 3, 2, 1]const array = [3, 1, 4, 2, 5];
array.sort();
console.log(array); // Output: [1, 2, 3, 4, 5]const array = [1, 2, 3, 4, 5];
array.forEach((element) => {console.log(element);
});
// Output:
// 1
// 2
// 3
// 4
// 5const array = [1, 2, 3, 4, 5];
const newArray = array.map((element) => {return element * 2;
});
console.log(newArray); // Output: [2, 4, 6, 8, 10]const array = [1, 2, 3, 4, 5];
const newArray = array.filter((element) => {return element % 2 === 0;
});
console.log(newArray); // Output: [2, 4]const array = [1, 2, 3, 4, 5];
const sum = array.reduce((accumulator, currentValue) => {return accumulator + currentValue;
}, 0);
console.log(sum); // Output: 15