返回
数据调试的好帮手:数组的map、filter、sort、reduce 用法详解
前端
2024-02-22 01:21:19
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