在前端开发中,数组是一种非常常用的数据类型。在实际开发中,我们经常需要对数组进行一些高级的操作,如过滤、排序、映射等等。在 ES11 中,新增了一些处理数组高级过滤器的方法,本文将详细介绍这些方法的使用。
Array.prototype.filter()
Array.prototype.filter()
方法可以根据指定的条件过滤数组中的元素,并返回一个新的数组。该方法接受一个回调函数作为参数,该回调函数会对数组中的每个元素进行判断,如果返回值为 true
,则该元素会被保留在新的数组中,否则会被过滤掉。
示例代码:
const arr = [1, 2, 3, 4, 5]; const filteredArr = arr.filter(item => item % 2 === 0); console.log(filteredArr); // [2, 4]
Array.prototype.flatMap()
Array.prototype.flatMap()
方法可以将数组中的每个元素映射到一个新的数组中,并将所有新数组中的元素合并成一个新的数组。该方法接受一个回调函数作为参数,该回调函数会对数组中的每个元素进行操作,并返回一个新数组。
示例代码:
const arr = [1, 2, 3]; const mappedArr = arr.flatMap(item => [item, item * 2]); console.log(mappedArr); // [1, 2, 2, 4, 3, 6]
Array.prototype.reduce()
的升级版
在 ES11 中,Array.prototype.reduce()
方法也进行了升级。该方法可以接受一个可选的初始化值作为参数,如果没有指定初始化值,则第一个元素作为初始值。同时,该方法还可以接受一个可选的并行度参数,用于指定并行执行的任务数量。
示例代码:
// javascriptcn.com 代码示例 const arr = [1, 2, 3, 4, 5]; // 求和 const sum = arr.reduce((prev, curr) => prev + curr, 0); console.log(sum); // 15 // 并行求和 const parallelSum = arr.reduce((prev, curr) => prev + curr, 0, 2); console.log(parallelSum); // 15
总结
ES11 中新增的这些处理数组高级过滤器的方法为我们在实际开发中提供了很大的便利。通过灵活运用这些方法,我们可以更加高效地处理数组,提升我们的开发效率。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/656ac3f0d2f5e1655d32f516