返回

数据调试的好帮手:数组的map、filter、sort、reduce 用法详解

前端

map

map 方法对数组中的每个元素应用一个函数,并返回一个新数组,其中包含函数的返回值。

语法:

array.map(callbackFunction(currentValue, index, array))

参数:

  • callbackFunction:要对数组中的每个元素应用的函数。
  • currentValue:数组中的当前元素。
  • index:数组中当前元素的索引。
  • array:数组本身。

返回值:一个包含函数返回值的新数组。

示例:

const numbers = [1, 2, 3, 4, 5];
const doubledNumbers = numbers.map(number => number * 2);
console.log(doubledNumbers); // [2, 4, 6, 8, 10]

filter

filter 方法创建一个新数组,其中包含通过给定函数测试的元素。

语法:

array.filter(callbackFunction(currentValue, index, array))

参数:

  • callbackFunction:要对数组中的每个元素应用的函数。
  • currentValue:数组中的当前元素。
  • index:数组中当前元素的索引。
  • array:数组本身。

返回值:一个包含通过函数测试的元素的新数组。

示例:

const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.filter(number => number % 2 === 0);
console.log(evenNumbers); // [2, 4]

sort

sort 方法对数组中的元素进行排序,并返回一个新数组。

语法:

array.sort([compareFunction])

参数:

  • compareFunction:用于对数组元素进行比较的函数。如果未指定此参数,数组中的元素将按其 Unicode 码点值进行排序。

返回值:一个已排序的新数组。

示例:

const numbers = [1, 2, 3, 4, 5];
const sortedNumbers = numbers.sort((a, b) => a - b);
console.log(sortedNumbers); // [1, 2, 3, 4, 5]

reduce

reduce 方法将数组中的元素累积为单个值。

语法:

array.reduce(callbackFunction(accumulator, currentValue, index, array))

参数:

  • callbackFunction:要对数组中的每个元素应用的函数。
  • accumulator:累积值。
  • currentValue:数组中的当前元素。
  • index:数组中当前元素的索引。
  • array:数组本身。

返回值:一个累积值。

示例:

const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
console.log(sum); // 15