- flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返 回。
- flat: 降维的意思
- flat:如果不传参数,默认只进行一次降维
- flat如果传入参数,传入的参数是几就进行几次降维
- flatMap() 方法首先使用映射函数映射每个元素,然后将结果压缩成一个新数组。
- 注意一:flatMap是先进行map操作,再做flat的操作;
- 注意二:flatMap中的flat相当于深度为1;
flatMap和map
const nums2 = [10, 20, 30];
const nweNums3 = nums2.flatMap(item => {
return item * 2;
})
const newNums4 = nums2.map(item => {
return item * 2;
})
console.log(nweNums3); //[ 20, 40, 60 ]
console.log(newNums4); //[ 20, 40, 60 ]
应用场景
- 先对字符串处理成数组了,然后自动对这些数组做一个降维,然后返回一个新的数组,并且是一维数组
[
'hello', 'world',
'hello', 'lyh',
'my', 'name',
'is', 'wts'
]
- 在前面,我们可以通过 Object.entries 将一个对象转换成 entries,那么如果我们有一个entries了,如何将其转换 成对象呢?
- ES10提供了 Object.formEntries来完成转换:
- 那么这个方法有什么应用场景呢?
- 先转成entries,再转成对象
应用场景:
const queryString = 'name=wts&age=18&height=1.88';
// 它是用来处理query这种格式的数据
const queryParams = new URLSearchParams(queryString);
console.log(queryParams); // URLSearchParams { 'name' => 'wts', 'age' => '18', 'height' => '1.88' }
for(const param of queryParams) {
console.log(param);
/**
* [ 'name', 'wts' ]
[ 'age', '18' ]
[ 'height', '1.88' ]
*/
}
const paramObj = Object.fromEntries(queryParams); // 将entries转成对象
console.log(paramObj); // { name: 'wts', age: '18', height: '1.88' }
- 去除一个字符串首尾的空格,我们可以通过trim方法,如果单独去除前面或者后面呢?
- ES10中给我们提供了trimStart和trimEnd;
- 分别是去除头部空格,去除尾部空格
- Symbol description:已经讲过了
- Optional catch binding:后面讲解try cach讲解