7.1 splice() 方法
JavaScript中的数组提供了一些内置方法来操作数据。在这次讲座中,我们会看四个主要的数组方法:splice()
、slice()
、concat()
和 indexOf()
。每个方法在数组上执行特定操作,可以大大简化数据处理。
splice() 方法 改变数组的内容,删除现有元素和/或添加新元素在这些位置上。
语法:
splice (start, deleteCount, item1, item2, ...);
其中:
start
: 开始更改的索引deleteCount
: 要删除的元素数量。如果未指定,则删除从 start 位置开始的所有元素item1
,item2
,...
: 添加到数组的元素。如果未指定,则不添加元素
示例 1: 删除元素
在这个示例中,从数组 fruits
中删除两个元素,从索引 2
开始。返回值是删除的元素数组。
let fruits = ['apple', 'banana', 'cherry', 'date', 'fig'];
let removed = fruits.splice(2, 2);
console.log(fruits); // 输出: ['apple', 'banana', 'fig']
console.log(removed); // 输出: ['cherry', 'date']
示例 2: 添加元素
在这个示例中,在数组 fruits
中从索引 2
开始添加两个新元素 (date
和 fig
)。没有删除元素。
let fruits = ['apple', 'banana', 'cherry'];
fruits.splice(2, 0, 'date', 'fig');
console.log(fruits); // 输出: ['apple', 'banana', 'date', 'fig', 'cherry']
示例 3: 替换元素
在这个示例中,索引为 1
的元素 (banana
) 被两个新元素 (date
和 fig
) 替换。
let fruits = ['apple', 'banana', 'cherry'];
fruits.splice(1, 1, 'date', 'fig');
console.log(fruits); // 输出: ['apple', 'date', 'fig', 'cherry']
7.2 slice() 方法
slice()
方法返回一个新数组,包含了从原始数组中拷贝的一部分。原始数组不会改变。
语法:
array.slice(begin, end);
其中:
begin
: 开始复制的索引end
: 复制到的索引(不包含这个索引的元素)。如果未指定,则复制到数组的末尾
示例 1: 复制部分数组
在这个示例中,创建了一个新数组,包含从 1
到 2
的索引元素,来自 fruits
数组。
let fruits = ['apple', 'banana', 'cherry', 'date', 'fig'];
let sliced = fruits.slice(1, 3);
console.log(sliced); // 输出: ['banana', 'cherry']
示例 2: 从数组开头复制
在这个示例中,创建了一个新数组,包含了来自 fruits
数组的 0
和 1
索引元素。
let fruits = ['apple', 'banana', 'cherry'];
let sliced = fruits.slice(0, 2);
console.log(sliced); // 输出: ['apple', 'banana']
示例 3: 复制到数组末尾
在这个示例中,创建了一个新数组,包含了来自 fruits
数组的从索引 1
开始到末尾的元素。
let fruits = ['apple', 'banana', 'cherry'];
let sliced = fruits.slice(1);
console.log(sliced); // 输出: ['banana', 'cherry']
7.3 concat() 方法
concat()
方法用于合并两个或多个数组。它返回一个新数组,包含了所有合并数组的元素。
语法:
array1.concat(array2, array3, ...);
其中:
array1
,array2
,array3
,...
: 要合并的数组
示例 1: 合并两个数组
在这个示例中,数组 fruits1
和 fruits2
被合并到一个新的 combined
数组中。
let fruits1 = ['apple', 'banana'];
let fruits2 = ['cherry', 'date'];
let combined = fruits1.concat(fruits2);
console.log(combined); // 输出: ['apple', 'banana', 'cherry', 'date']
示例 2: 合并多个数组
在这个示例中,三个数组被合并到一个新的 combined
数组中。
let fruits1 = ['apple', 'banana'];
let fruits2 = ['cherry', 'date'];
let fruits3 = ['fig', 'grape'];
let combined = fruits1.concat(fruits2, fruits3);
console.log(combined); // 输出: ['apple', 'banana', 'cherry', 'date', 'fig', 'grape']
示例 3: 合并数组和元素
在这个示例中,元素 cherry
和 date
被加入到数组 fruits
,创建一个新的 moreFruits
数组。
let fruits = ['apple', 'banana'];
let moreFruits = fruits.concat('cherry', 'date');
console.log(moreFruits); // 输出: ['apple', 'banana', 'cherry', 'date']
7.4 indexOf() 方法
indexOf()
方法返回数组中可以找到给定元素的第一个索引,或者返回 -1
,如果未找到该元素。
语法:
array.indexOf(searchElement, fromIndex);
其中:
searchElement
: 要查找的元素fromIndex
: 开始搜索的索引。如果未指定,则从数组开头开始搜索
示例 1: 在数组中查找元素
在这个示例中,indexOf()
方法返回 fruits
数组中 banana
元素的索引。
let fruits = ['apple', 'banana', 'cherry'];
let index = fruits.indexOf('banana');
console.log(index); // 输出: 1
示例 2: 元素未找到
在这个示例中,因为 fruits
数组中没有 date
元素,indexOf()
方法返回 -1
。
let fruits = ['apple', 'banana', 'cherry'];
let index = fruits.indexOf('date');
console.log(index); // 输出: -1
示例 3: 从特定索引开始查找元素
在这个示例中,indexOf()
方法从索引 2
开始查找 banana
元素,并在索引 3
找到了它。
let fruits = ['apple', 'banana', 'cherry', 'banana'];
let index = fruits.indexOf('banana', 2);
console.log(index); // 输出: 3
GO TO FULL VERSION