ES10 的新特性:Object.fromEntries、Array.flatMap() 和 String 的 trimStart() 和 trimEnd()

JavaScript 是一门不断发展的语言,每年都会有新的 ECMAScript 版本推出,其中最新的版本是 ES10。ES10 在前端开发中新增了许多新特性,本文主要介绍其中三个:Object.fromEntries、Array.flatMap() 和 String 的 trimStart() 和 trimEnd()。

Object.fromEntries

在 ES10 之前,如果我们想把一个数组转换成对象,可以使用 reduce() 函数来实现。比如下面这个例子:

在 ES10 中,我们可以使用 Object.fromEntries() 函数来更简单地实现相同的功能。Object.fromEntries() 函数接收一个二维数组,每个数组里面包含两个元素,第一个元素作为对象属性名,第二个元素作为属性值,最终返回一个以数组元素作为属性的对象。例如:

从上面的例子可以看到,Object.fromEntries() 的使用非常简单,不需要使用 reduce(),代码更加简洁易懂。

Array.flatMap()

在 ES5 中,我们可以使用 array.map() 函数来遍历数组,并返回一个新的数组。而 ES6 中新增的 array.flat() 可以将多维数组转换成一维数组。在 ES10 中,我们可以使用 array.flatMap() 函数来实现类似于 array.map()array.flat() 的功能,即先遍历数组,并对每个元素进行操作,最后将结果拍平成一个一维数组。例如:

从上面的例子可以看到,“一对多”的映射关系可以使用 flatMap() 进行处理。

String 的 trimStart() 和 trimEnd()

在 ES10 中,增加了 String.prototype.trimStart()String.prototype.trimEnd() 函数,分别用于删除字符串开头和结尾的空格。这两个函数的使用很容易,下面是一个简单的示例:

String.prototype.trimStart() 可以简化常见的字符串操作。例如,在处理 URL 时,我们经常需要移除 URL 的协议部分:http://https://。我们可以通过 String.prototype.startsWith() 函数和正则表达式来实现:

使用 String.prototype.trimStart() 函数,我们可以把代码简化为:

总结

ES10 中的这几个新特性都是前端开发中非常实用的。Object.fromEntries() 函数可以方便地将二维数组转换成对象,Array.flatMap() 函数可以实现先映射再拍平的功能,String.prototype.trimStart()String.prototype.trimEnd() 函数可以方便地删除字符串开头和结尾的空格。我们应该掌握这些新特性,并在实际开发中灵活应用。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65498e6f7d4982a6eb3c1e82


纠错
反馈