【不得不知】数组常用的方法...... 一文拿下(持续更新...)

191 阅读7分钟

**前言:**巩固知识,拒绝颓废。

一、操作方法

- 数组基本可以归纳为“ 增删改查”
- 要注意哪些方法会对原数组产生影响,哪些不会

Ⅰ.增

· 对原数组产生影响: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

⭐使用场景:

  1. 向数组末尾添加单个元素:当需要将一个新元素添加到数组的末尾时,可以使用 push() 方法,这是最常见的用法。

  2. 批量添加元素:push() 方法允许一次性向数组末尾添加多个元素,可以根据需要传入多个参数,便捷地批量添加元素。

  3. 动态管理数据:在处理动态数据时,经常需要将新的数据追加到已有数组的末尾。比如在处理用户提交的表单数据、获取服务器数据后更新客户端数据等情况下,push() 方法非常实用。

  4. 动态构建列表或表格:当需要动态地向列表或表格中添加新的数据行时,可以使用 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() 方法会将元素添加到数组开头,这样可能会导致数组的索引重新排列。在大规模数据操作时,可能会影响性能。

⭐使用场景:

  1. 栈(Stack)模拟:在栈数据结构的实现中,unshift() 可以模拟“入栈”操作。当需要在栈顶添加新元素时,可以使用 unshift() 将元素添加到数组的开头,这样新元素就成为了栈顶。

  2. 队列(Queue)模拟:类似于栈模拟,unshift() 也可以在队列数据结构的实现中模拟“入队”操作。通过将元素添加到数组的开头,新元素就成为了队列的前端。

  3. 用户输入的动态添加:在某些场景下,可能需要动态地根据用户的输入,在数组的开头添加新的元素。例如,在聊天应用中,将新消息添加到聊天记录的前端,让用户最先看到最新的消息。

  4. 数组元素顺序调整:有时候需要将特定元素移动到数组的开头,这时可以先使用 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,下回再继续更新~~~