随着 JavaScript 的发展,新的标准规范 ECMA-262 也随之推出,并带来了越来越多的新特性和新函数。在这篇文章中,我们将深入讨论 ES10 引入的新的数组函数,其中包括 Array.flat()
、Array.flatMap()
以及其他实用的新数组函数。
Array.flat()
Array.flat()
函数用于把嵌套的数组拉平,变成一维数组。这个函数接受一个参数,用于指定要拉平的嵌套层数,如果没有提供参数,则默认为 1。
下面是一个简单的例子:
----- --- - ---- --- --- --- --- ---- ----- ------- - ----------- --------------------- -- --- -- -- -- -- --
在上面的例子中,我们使用了 flat()
函数把原始的嵌套数组 arr
变成了一维数组 flatArr
。
有时候你可能会遇到一个嵌套层数不确定的数组,你可以使用 Infinity
参数来保证它被完全拉平。
Array.flatMap()
Array.flatMap()
函数是 Array.map()
和 Array.flat()
函数的结合体。它把一个数组中的每一个元素都映射到一个新数组中,并且使用 flat()
函数把这些新数组拉平成一个单一的数组。
下面是一个简单的例子:
----- --- - --- -- --- ----- ---------- - ------------- -- -- - ---- ------------------------ -- --- -- --
在上面的例子中,我们使用 flatMap()
函数对原始数组 arr
中的每一个元素都进行了乘以 2 的操作,并通过 flat()
函数把它们拉平成一个单一的数组。
值得注意的是,flatMap()
函数的回调函数必须返回一个数组,否则将会抛出错误。
Array.at()
Array.at()
函数用于获取数组中指定位置的元素。这个函数接受一个参数,用于指定要获取的位置,如果索引为负数,则从数组末尾开始计算。
下面是一个简单的例子:
----- --- - ----- ---- ---- ---- ----- ----- ------- - ---------- --------------------- -- ---
在上面的例子中,我们使用 at()
函数获取了原始数组 arr
中索引为 2 的元素。
Array.filter()
Array.filter()
函数用于过滤数组中的元素。这个函数接受一个回调函数作为参数,用于判断元素是否满足过滤条件。
下面是一个简单的例子:
----- --- - --- -- -- -- --- ----- ----------- - ------------ -- - - - --- --- ------------------------- -- --- --
在上面的例子中,我们使用 filter()
函数把原始数组 arr
中的偶数元素过滤出来,生成了一个新的数组 filteredArr
。
Array.find()
Array.find()
函数用于查找数组中满足条件的第一个元素。这个函数接受一个回调函数作为参数,用于判断元素是否满足条件。
下面是一个简单的例子:
----- --- - --- -- -- -- --- ----- ------------ - ---------- -- - - --- -------------------------- -- -
在上面的例子中,我们使用 find()
函数查找了原始数组 arr
中第一个大于 2 的元素,并返回了它。如果没有找到符合条件的元素,则 find()
函数会返回 undefined
。
Array.findIndex()
Array.findIndex()
函数用于查找数组中满足条件的第一个元素的索引。这个函数接受一个回调函数作为参数,用于判断元素是否满足条件。
下面是一个简单的例子:
----- --- - --- -- -- -- --- ----- ---------- - --------------- -- - - --- ------------------------ -- -
在上面的例子中,我们使用 findIndex()
函数查找了原始数组 arr
中第一个大于 2 的元素的索引,并返回了它。如果没有找到符合条件的元素,则 findIndex()
函数会返回 -1。
Array.includes()
Array.includes()
函数用于检查数组中是否包含某个元素。这个函数接受一个参数,用于指定要检查的元素。
下面是一个简单的例子:
----- --- - --- -- -- -- --- ----- --------- - ---------------- ----- --------- - ---------------- ----------------------- -- ---- ----------------------- -- -----
在上面的例子中,我们使用 includes()
函数检查了原始数组 arr
中是否包含了指定的元素。如果包含,则返回 true
,否则返回 false
。
Array.some()
Array.some()
函数用于检查数组中是否存在满足条件的元素。这个函数接受一个回调函数作为参数,用于判断元素是否满足条件。
下面是一个简单的例子:
----- --- - --- -- -- -- --- ----- ------- - ---------- -- - - - --- --- ----- ------- - ---------- -- - --- --- --------------------- -- ---- --------------------- -- -----
在上面的例子中,我们使用 some()
函数检查了原始数组 arr
是否存在偶数元素和值为 0 的元素。如果存在,则返回 true
,否则返回 false
。
Array.every()
Array.every()
函数用于检查数组中是否所有元素都满足条件。这个函数接受一个回调函数作为参数,用于判断元素是否满足条件。
下面是一个简单的例子:
----- --- - --- -- -- -- --- ----- ----------- - ----------- -- - - --- ----- ------- - ----------- -- - - - --- --- ------------------------- -- ---- --------------------- -- -----
在上面的例子中,我们使用 every()
函数检查了原始数组 arr
中的每一个元素是否都是正数和偶数。如果都满足条件,则返回 true
,否则返回 false
。
Array.flat()、Array.flatMap() 及其它实用的新数组函数:总结
在本文中,我们深入探讨了 ES10 引入的新的数组函数 Array.flat()
、Array.flatMap()
及其他实用的新数组函数,涵盖了数组的创建、遍历和转换等方面的知识点。这些函数不仅可以提高你的开发效率,同时也有助于你更好地理解和使用 JavaScript 中的数组。希望本文对你们有所帮助,也欢迎大家在评论中留言和分享。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6645996dd3423812e4399471