返回

Vue3源码学习-工具函数utils(二)

前端

Vue3 数组操作工具函数详解:轻松掌控数组操作

数组操作工具函数

Vue3 提供了丰富的数组操作工具函数,极大地简化了数组操作。这些函数涵盖了各种数组操作需求,包括遍历、查找、排序、连接、切片、删除等。

数组遍历方法

forEach

forEach 方法对数组中的每个元素执行指定的回调函数。回调函数可以接受三个参数:当前元素、当前元素索引和数组本身。

const numbers = [1, 2, 3, 4, 5];

numbers.forEach((number, index, array) => {
  console.log(`Number ${index + 1}: ${number}`);
});

map

map 方法对数组中的每个元素执行指定的回调函数,并返回一个包含所有执行结果的新数组。回调函数可以接受三个参数:当前元素、当前元素索引和数组本身。

const doubledNumbers = numbers.map((number) => {
  return number * 2;
});

console.log(doubledNumbers); // [2, 4, 6, 8, 10]

filter

filter 方法对数组中的每个元素执行指定的回调函数,并返回一个包含所有满足回调函数条件的元素的新数组。回调函数可以接受三个参数:当前元素、当前元素索引和数组本身。

const evenNumbers = numbers.filter((number) => {
  return number % 2 === 0;
});

console.log(evenNumbers); // [2, 4]

some

some 方法检查数组中是否存在至少一个元素满足指定的回调函数条件。如果存在,则返回 true,否则返回 false。回调函数可以接受三个参数:当前元素、当前元素索引和数组本身。

const isAnyNumberGreaterThan10 = numbers.some((number) => {
  return number > 10;
});

console.log(isAnyNumberGreaterThan10); // false

every

every 方法检查数组中是否每个元素都满足指定的回调函数条件。如果所有元素都满足,则返回 true,否则返回 false。回调函数可以接受三个参数:当前元素、当前元素索引和数组本身。

const isEveryNumberGreaterThan0 = numbers.every((number) => {
  return number > 0;
});

console.log(isEveryNumberGreaterThan0); // true

数组查找方法

find

find 方法返回数组中第一个满足指定回调函数条件的元素。如果不存在满足条件的元素,则返回 undefined。回调函数可以接受三个参数:当前元素、当前元素索引和数组本身。

const firstEvenNumber = numbers.find((number) => {
  return number % 2 === 0;
});

console.log(firstEvenNumber); // 2

findIndex

findIndex 方法返回数组中第一个满足指定回调函数条件的元素的索引。如果不存在满足条件的元素,则返回 -1。回调函数可以接受三个参数:当前元素、当前元素索引和数组本身。

const firstEvenNumberIndex = numbers.findIndex((number) => {
  return number % 2 === 0;
});

console.log(firstEvenNumberIndex); // 0

includes

includes 方法检查数组中是否存在指定的值。如果存在,则返回 true,否则返回 false

const doesArrayInclude4 = numbers.includes(4);

console.log(doesArrayInclude4); // true

indexOf

indexOf 方法返回数组中指定值的第一个索引。如果不存在该值,则返回 -1

const index = numbers.indexOf(2);

console.log(index); // 1

数组排序方法

sort

sort 方法根据指定的比较函数对数组进行排序。比较函数可以接受两个参数:第一个元素和第二个元素。比较函数应返回一个数字,表示第一个元素与第二个元素的大小关系(小于 0 表示第一个元素较小,大于 0 表示第一个元素较大,等于 0 表示两个元素相等)。

numbers.sort((a, b) => a - b);

console.log(numbers); // [1, 2, 3, 4, 5]

reverse

reverse 方法反转数组中元素的顺序。

numbers.reverse();

console.log(numbers); // [5, 4, 3, 2, 1]

数组连接方法

concat

concat 方法将两个或多个数组连接成一个新数组。

const mergedNumbers = numbers.concat([6, 7, 8]);

console.log(mergedNumbers); // [1, 2, 3, 4, 5, 6, 7, 8]

join

join 方法将数组中的元素以指定的字符串分隔符连接成一个字符串。

const numberString = numbers.join(",");

console.log(numberString); // "1,2,3,4,5"

数组切片方法

slice

slice 方法从数组中提取一个子数组。slice 方法接受两个参数:起始索引和结束索引(不包括结束索引)。

const subArray = numbers.slice(1, 3);

console.log(subArray); // [2, 3]

splice

splice 方法从数组中删除指定数量的元素,并可插入新的元素。splice 方法接受三个参数:起始索引、删除元素的数量和要插入的新元素(可选)。

numbers.splice(2, 1);

console.log(numbers); // [1, 2, 4, 5]

numbers.splice(1, 0, 2.5);

console.log(numbers); // [1, 2.5, 2, 4, 5]

数组删除方法

pop

pop 方法从数组的末尾删除最后一个元素并返回该元素。

const lastElement = numbers.pop();

console.log(lastElement); // 5

console.log(numbers); // [1, 2, 3, 4]

push

push 方法向数组的末尾添加一个或多个元素,并返回新的数组长度。

numbers.push(6, 7);

console.log(numbers); // [1, 2, 3, 4, 6, 7]

shift

shift 方法从数组的开头删除第一个元素并返回该元素。

const firstElement = numbers.shift();

console.log(firstElement); // 1

console.log(numbers); // [2, 3, 4, 6, 7]

unshift

unshift 方法向数组的开头添加一个或多个元素,并返回新的数组长度。

numbers.unshift(0, -1);

console.log(numbers); // [-1, 0, 2, 3, 4, 6, 7]

结论

Vue3 中的数组操作工具函数提供了强大的功能,可以轻松地操作数组。理解这些工具函数及其用法将显著提升您的编码效率和开发体验。

常见问题解答

1. 如何在 Vue3 中创建一个新数组?

const myArray = new Array();

2. 如何检查数组是否为空?

myArray.length === 0;

3. 如何迭代数组中的每个元素?

可以使用 forEach 方法。

myArray.forEach((item) => {
  console.log(item);
});

4. 如何从数组中获取特定索引的元素?

myArray[index];

5. 如何从数组中删除所有元素?

myArray.length = 0;