**前言:**巩固知识,拒绝颓废。
一、操作方法
- 数组基本可以归纳为“ 增删改查”
- 要注意哪些方法会对原数组产生影响,哪些不会
Ⅰ.增
· 对原数组产生影响:push() unshift() splice()
· 不对原数组产生影响:concat()
push()
push() 方法用于将一个或多个元素添加到数组的末尾,它的作用是在数组的末尾追加新的元素
返回值:更新后的数组的长度
❤示例:
let fruits = ['apple', 'banana', 'orange'];
// 向数组末尾添加一个元素
fruits.push('grape');
// 现在 fruits = ['apple', 'banana', 'orange', 'grape']
// 向数组末尾添加多个元素
fruits.push('pear', 'watermelon');
// 现在 fruits = ['apple', 'banana', 'orange', 'grape', 'pear', 'watermelon']
//如果用一个变量去接收一下fruits.push(),会发生什么呢?
const count = fruits.push('mango');
//现在 fruits = ['apple', 'banana', 'orange', 'grape', 'pear', 'watermelon','mango']
//那么count是多少呢?
consoloe.log(count) //count打印出来是:7
⭐使用场景:
-
向数组末尾添加单个元素:当需要将一个新元素添加到数组的末尾时,可以使用
push()方法,这是最常见的用法。 -
批量添加元素:
push()方法允许一次性向数组末尾添加多个元素,可以根据需要传入多个参数,便捷地批量添加元素。 -
动态管理数据:在处理动态数据时,经常需要将新的数据追加到已有数组的末尾。比如在处理用户提交的表单数据、获取服务器数据后更新客户端数据等情况下,
push()方法非常实用。 -
动态构建列表或表格:当需要动态地向列表或表格中添加新的数据行时,可以使用
push()方法将新的数据行添加到数组中,然后在渲染列表或表格时遍历数组进行显示。
!!! 那么,有像数组末尾插入元素,那么要像数组头部插入元素,就使用unshift()
unshift()
unshift() 它用于向数组的开头添加一个或多个元素
返回值:返回修改后的数组的新长度
❤示例:
let myArray = [2, 3, 4];
let length = myArray.unshift(1); // 在数组开头添加1
console.log(myArray); // 输出:[1, 2, 3, 4]
console.log(length); // 输出:4,表示新数组的长度
❗ 注意:
unshift() 方法会将元素添加到数组开头,这样可能会导致数组的索引重新排列。在大规模数据操作时,可能会影响性能。
⭐使用场景:
-
栈(Stack)模拟:在栈数据结构的实现中,
unshift()可以模拟“入栈”操作。当需要在栈顶添加新元素时,可以使用unshift()将元素添加到数组的开头,这样新元素就成为了栈顶。 -
队列(Queue)模拟:类似于栈模拟,
unshift()也可以在队列数据结构的实现中模拟“入队”操作。通过将元素添加到数组的开头,新元素就成为了队列的前端。 -
用户输入的动态添加:在某些场景下,可能需要动态地根据用户的输入,在数组的开头添加新的元素。例如,在聊天应用中,将新消息添加到聊天记录的前端,让用户最先看到最新的消息。
-
数组元素顺序调整:有时候需要将特定元素移动到数组的开头,这时可以先使用
indexOf()方法找到元素的索引,然后再使用unshift()方法将其移到开头。
😊针对“使用场景”中的第4点举例:
// 假设我们有一个数组
const myArray = [10, 20, 30, 40, 50];
// 找到元素的索引
const elementToMove = 30;
const index = myArray.indexOf(elementToMove);
// 将元素移到开头
if (index !== -1) {
// 如果元素存在于数组中
myArray.splice(index, 1); // 从原来的位置删除元素
myArray.unshift(elementToMove); // 将元素添加到数组开头
}
console.log(myArray); // [30, 10, 20, 40, 50]
splice()
splice() 是 JavaScript 数组的一个原生方法,用于在数组中添加、删除或替换元素。它可以修改原始数组,并返回被删除的元素组成的新数组
返回值:返回被删除的元素之后组成的新数组
该方法的语法如下:
array.splice(start, deleteCount, item1, item2, ...);
start: 必需,表示要修改的起始位置的索引,可以是负值,-1 表示数组的最后一个元素deleteCount: 可选,表示要删除的元素数量,如果为 0,则不删除元素item1, item2, ...: 可选,表示要添加到数组的新元素
❤示例:
示例1:删除元素
const fruits = ['apple', 'banana', 'orange', 'grape'];
fruits.splice(2, 1); // 从索引 2 开始删除 1 个元素
console.log(fruits); // 输出: ['apple', 'banana', 'grape']
示例2:添加元素
const fruits = ['apple', 'banana', 'grape'];
fruits.splice(2, 0, 'orange'); // 从索引 2 开始添加元素 'orange'
console.log(fruits); // 输出: ['apple', 'banana', 'orange', 'grape']
示例3:替换元素
const fruits = ['apple', 'banana', 'grape'];
fruits.splice(1, 1, 'orange'); // 从索引 1 开始替换元素 'banana' 为 'orange'
console.log(fruits); // 输出: ['apple', 'orange', 'grape']
❗注意:
splice() 方法会直接修改原始数组,并返回被删除元素组成的新数组,所以在使用时要谨慎
如果你想要操作数组的副本而不改变原始数组,可以使用 slice() 方法创建一个浅拷贝的数组再进行操作
🙂浅聊slice():
slice() 方法是 JavaScript 数组的一个常用方法,用于创建一个新的数组,其中包含原始数组的一部分元素
slice() 方法不会修改原始数组,而是返回一个浅拷贝的新数组
语法:
array.slice([start], [end]);
参数:
start(可选):表示截取的起始位置的索引。如果未指定该参数,则默认从索引 0 开始。如果为负数,则表示从数组末尾开始计算的位置end(可选):表示截取的结束位置的索引。如果未指定该参数,则默认为数组的长度。如果为负数,则表示从数组末尾开始计算的位置。注意,截取的元素不包括结束位置对应的元素
示例:
const originalArray = [1, 2, 3, 4, 5];
const slicedArray = originalArray.slice(1, 4); // 从索引 1 开始,截取到索引 3(不包括索引 4)的元素
console.log(slicedArray); // 输出: [2, 3, 4]
console.log(originalArray); // 输出: [1, 2, 3, 4, 5],原始数组不受影响
注意:
slice()方法返回一个新数组,是原数组的浅拷贝。修改新数组不会影响原数组,反之亦然。- 如果需要截取数组的全部元素,可以直接使用
array.slice()或array.slice(0)。 - 如果需要截取数组的最后几个元素,可以使用负数索引,例如
array.slice(-3)将截取倒数第三个及后面的元素。
总结:slice() 方法是一个用于截取数组的有用工具,它可以帮助你创建一个新的数组,包含原数组的指定部分,同时保持原始数组不受影响。
concat()
concat() 是 JavaScript 数组的一个方法,用于将两个或多个数组合并成一个新数组,而不会修改原始数组。它不会改变原数组的内容,而是返回一个新的数组,其中包含了所有被连接的数组的元素。
返回值:是一个合并所有数组元素后的新数组
❤示例: / ⭐使用场景:
示例1:合并数组(即:可以将多个数组合并成一个新的数组)
const array1 = [1, 2, 3];
const array2 = [4, 5];
const array3 = [6];
const newArray = array1.concat(array2, array3);
console.log(newArray); // 输出: [1, 2, 3, 4, 5, 6]
示例2:创建数组的副本(通过concat()方法可以创建原数组的一个副本,实现数组的浅拷贝)
const originalArray = [1, 2, 3];
const newArray = originalArray.concat();
console.log(newArray); // 输出: [1, 2, 3]
插句话:其实就跟slice浅拷贝类似!!!
示例3:合并数组和元素(即:可以将数组和元素一起合并成新的数组)
const array1 = [1, 2, 3];
const newArray = array1.concat(4, 5, 6);
console.log(newArray); // 输出: [1, 2, 3, 4, 5, 6]
示例4:将字符串转换为数组
const str = 'hello';
const charArray = Array.prototype.concat.apply([], str);
console.log(charArray); // 输出: ['h', 'e', 'l', 'l', 'o']
注意:
这个示例第二行可能大家看不懂,这里我也不能详细说了,详细说就得说很多了,可以自行去查一下分别是什么,然后看看自己能不能理解
总结:
concat() 方法是一个非常实用的数组方法,用于合并数组或创建数组的副本,它可以将多个数组和元素组合在一起,返回一个新的数组。使用 concat() 方法可以避免直接修改原始数组,保持代码的健壮性和可维护性。
ok,下回再继续更新~~~