每天3分钟,重学ES6-ES12(七)ES10 新增内容

简介: 每天3分钟,重学ES6-ES12(七)ES10 新增内容

19c2e7a9bfbb7f5e8c7d744db995e29.png

每天3分钟,重学ES6-ES12文章汇总

前言

今天开始和大家一起系统的学习ES6+,每天3分钟,用一把斗地主的时间,重学ES6+,今天介绍的是ES10中新增的内容

ES10

flat

  • flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。

相当于数组扁平化,接受一个参数,设置扁平化的层级

代码演示

// 1.flat的使用
const nums = [10, 20, [2, 9], [[30, 40], [10, 45]], 78, [55, 88]]
const newNums = nums.flat()
console.log(newNums)
//[10, 20, 2, 9, [30,40], [10,45], 78, 55, 88]
const newNums2 = nums.flat(2)
console.log(newNums2)
//[10, 20, 2, 9, 30, 40, 10, 45, 78, 55, 88]

flatMap

  • flatMap() 方法首先使用映射函数映射每个元素,然后将结果压缩成一个新数组。
  • 注意一:flatMap是先进行map操作,再做flat的操作;
  • 注意二:flatMap中的flat相当于深度为1;

代码演示

// 2.flatMap的使用
// 可以拆分字符串,把数组的中的短语拆成单词
const messages = ["Hello World", "hello lyh", "my name is coderwhy"]
const words = messages.flatMap(item => {
  return item.split(" ")
})
console.log(words)
// ['Hello', 'World', 'hello', 'lyh', 'my', 'name', 'is', 'coderwhy']


Object fromEntries

  • 在前面,我们可以通过 Object.entries 将一个对象转换成 entries,那么如果我们有一个entries了,如何将其转换 成对象呢?
  • ES10提供了 Object.formEntries来完成转换:
  • 那么这个方法有什么应用场景呢?

代码演示

const obj = {
  name: "yz",
  age: 24,
  height: 1.88
}
const entries = Object.entries(obj)
console.log(entries)
//[['name', 'yz'], ['age', 24],['height', 1.88]]
const newObj = {}
for (const entry of entries) {
  newObj[entry[0]] = entry[1]
}
console.log(newObj)
//{name: 'yz', age: 24, height: 1.88}
// 1.ES10中新增了Object.fromEntries方法
// 可以直接解析类对象数组
const newObj = Object.fromEntries(entries)
console.log(newObj)
//{name: 'yz', age: 24, height: 1.88}
// 2.Object.fromEntries的应用场景
// 解析地址上的参数
const queryString = 'name=yz&age=24&height=1.88'
const queryParams = new URLSearchParams(queryString)
for (const param of queryParams) {
  console.log(param)
}
const paramObj = Object.fromEntries(queryParams)
console.log(paramObj)
////{name: 'yz', age: 24, height: 1.88}

trimStart trimEnd

  • 去除一个字符串首尾的空格,我们可以通过trim方法,如果单独去除前面或者后面呢?
  • ES10中给我们提供了trimStart和trimEnd;

代码演示

const message = "    Hello World    "
console.log(message.trim())
console.log(message.trimStart())
console.log(message.trimEnd())

5f7960c7d6df9745728a755b4491963.png



相关文章
|
6月前
|
Java 微服务 Spring
微服务——SpringBoot使用归纳——Spring Boot中使用拦截器——拦截器使用实例
本文主要讲解了Spring Boot中拦截器的使用实例,包括判断用户是否登录和取消特定拦截操作两大场景。通过token验证实现登录状态检查,未登录则拦截请求;定义自定义注解@UnInterception实现灵活取消拦截功能。最后总结了拦截器的创建、配置及对静态资源的影响,并提供两种配置方式供选择,帮助读者掌握拦截器的实际应用。
202 0
|
自然语言处理 程序员 Windows
[UE虚幻引擎] DTSpeechVoice 文字转语音播放 插件说明
这个插件用于在虚幻引擎(UE)中通过蓝图将文本转化为语音播放,利用Windows内置的语音引擎,支持Win10和Win11。确保电脑已安装语音系统,可能需要额外下载语言包以支持多语言播放。蓝图操作包括添加Speech Voice Component到Actor,使用Speak节点播放文本,Set Volume调整音量,Set Rate改变播放速度,Pause和Resume控制播放状态,Stop则停止播放且无法恢复。此外,Get Tokens和Set Token用于管理语音类型。更多详情可访问[80后程序员](https://dt.cq.cn/archives/1008?from=aliyun)
382 5
|
12月前
18_左叶子之和
18_左叶子之和
|
传感器 移动开发 Linux
RT-Thread UART设备驱动框架初体验(中断方式接收带\r\n的数据)
RT-Thread UART设备驱动框架初体验(中断方式接收带\r\n的数据)
366 0
|
编译器 C++
【c++】类和对象3
【c++】类和对象3
57 1
|
算法 Ubuntu Java
java 调用 python 方法
java 调用 python 方法
433 0
|
存储 开发框架 缓存
【深入理解CLR 四】共享程序集和强命名程序集
【深入理解CLR 四】共享程序集和强命名程序集
156 0
|
JSON 搜索推荐 Go
Go项目优化——使用Elasticsearch搜索引擎
Go项目优化——使用Elasticsearch搜索引擎
Go项目优化——使用Elasticsearch搜索引擎
7-169 龟兔赛跑
7-169 龟兔赛跑
98 0
|
前端开发 JavaScript 数据处理
1.3项目评选系统的布局设计|学习笔记(一)
快速学习1.3项目评选系统的布局设计
1.3项目评选系统的布局设计|学习笔记(一)