前言
今天开始和大家一起系统的学习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())