返回

高手必备:10 个 JavaScript 数组操作神技,助你征服代码世界

前端

1. Array.prototype.forEach()

forEach() 方法用于遍历数组中的每个元素。它接受一个回调函数作为参数,该回调函数将在数组的每个元素上调用。回调函数的第一个参数是数组中的元素,第二个参数是元素的索引,第三个参数是数组本身。

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

numbers.forEach((number, index, array) => {
  console.log(`Element at index ${index}: ${number}`);
});

输出:

Element at index 0: 1
Element at index 1: 2
Element at index 2: 3
Element at index 3: 4
Element at index 4: 5

2. Array.prototype.map()

map() 方法用于将数组中的每个元素映射到一个新值。它接受一个回调函数作为参数,该回调函数将在数组的每个元素上调用。回调函数的第一个参数是数组中的元素,第二个参数是元素的索引,第三个参数是数组本身。map() 方法返回一个新数组,该数组包含回调函数的返回值。

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

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

console.log(doubledNumbers);

输出:

[2, 4, 6, 8, 10]

3. Array.prototype.filter()

filter() 方法用于过滤数组中的元素,只保留满足特定条件的元素。它接受一个回调函数作为参数,该回调函数将在数组的每个元素上调用。回调函数的第一个参数是数组中的元素,第二个参数是元素的索引,第三个参数是数组本身。filter() 方法返回一个新数组,该数组包含回调函数返回 true 的元素。

const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

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

console.log(evenNumbers);

输出:

[2, 4, 6, 8, 10]

4. Array.prototype.reduce()

reduce() 方法用于将数组中的所有元素归并为一个值。它接受两个参数:一个回调函数和一个初始值。回调函数将在数组的每个元素上调用。回调函数的第一个参数是归并后的值,第二个参数是数组中的元素,第三个参数是元素的索引,第四个参数是数组本身。reduce() 方法返回归并后的值。

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

const sum = numbers.reduce((total, number) => {
  return total + number;
}, 0);

console.log(sum);

输出:

15

5. Array.prototype.some()

some() 方法用于检查数组中是否至少有一个元素满足特定条件。它接受一个回调函数作为参数,该回调函数将在数组的每个元素上调用。回调函数的第一个参数是数组中的元素,第二个参数是元素的索引,第三个参数是数组本身。some() 方法返回一个布尔值,表示数组中是否至少有一个元素满足回调函数的条件。

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

const hasEvenNumber = numbers.some((number) => {
  return number % 2 === 0;
});

console.log(hasEvenNumber);

输出:

true

6. Array.prototype.every()

every() 方法用于检查数组中的所有元素是否都满足特定条件。它接受一个回调函数作为参数,该回调函数将在数组的每个元素上调用。回调函数的第一个参数是数组中的元素,第二个参数是元素的索引,第三个参数是数组本身。every() 方法返回一个布尔值,表示数组中的所有元素是否都满足回调函数的条件。

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

const allEvenNumbers = numbers.every((number) => {
  return number % 2 === 0;
});

console.log(allEvenNumbers);

输出:

false

7. Array.prototype.find()

find() 方法用于查找数组中满足特定条件的第一个元素。它接受一个回调函数作为参数,该回调函数将在数组的每个元素上调用。回调函数的第一个参数是数组中的元素,第二个参数是元素的索引,第三个参数是数组本身。find() 方法返回满足回调函数条件的第一个元素,如果数组中没有元素满足条件,则返回 undefined。

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

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

console.log(firstEvenNumber);

输出:

2

8. Array.prototype.findIndex()

findIndex() 方法用于查找数组中满足特定条件的第一个元素的索引。它接受一个回调函数作为参数,该回调函数将在数组的每个元素上调用。回调函数的第一个参数是数组中的元素,第二个参数是元素的索引,第三个参数是数组本身。findIndex() 方法返回满足回调函数条件的第一个元素的索引,如果数组中没有元素满足条件,则返回 -1。

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

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

console.log(firstEvenNumberIndex);

输出:

1

9. Array.prototype.includes()

includes() 方法用于检查数组中是否包含特定元素。它接受一个值作为参数,该值将与数组中的每个元素进行比较。includes() 方法返回一个布尔值,表示数组中是否包含该值。

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

const hasThree = numbers.includes(3);

console.log(hasThree);

输出:

true

10. Array.prototype.join()

join() 方法用于将数组中的所有元素连接成一个字符串。它接受一个分隔符作为参数,该分隔符将被插入到数组元素之间。join() 方法返回一个字符串,该字符串包含数组中的所有元素,中间用分隔符隔开。

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

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

console.log(joinedNumbers);

输出:

1,2,3,4,5