小编今天更新在es10中对字符串和数组的更新,能让我们在工作的时候能更方便一些,现在我们看一下都做了那些扩展。
一、字符串扩展
我们之前在去除字符串中前后空格的时候,可以通过正则表达式,就像这样
let str = ' school '
str.replace(/^\s/g,'') // 去掉字符串前面的空格
str.replace(/\s+$/g,'') // 去掉字符串后面的空格
在es10中提供了以下几个方法,很是方便。
let str = ' school '
console.log(str.trimStart()) // 去掉前面空格 'school '
console.log(str.trimLeft()) // 去掉前面空格 'school '
console.log(str.trimEnd()) // 去掉后面空格 ' school'
console.log(str.trimRight()) // 去掉后面空格 ' school'
console.log(str.trim()) // 前后空格都去掉 'school'
二、对数组的扩展
我们在项目中有些时候会遇到二维数组或者三维数组,这个时候,我们调用数组的方法的时候 ,有的时候会因为数据解构的原因,变得很复杂,es10提供了这样两个方法,可以将多维数组展开,变成一维数组,就像这样
let arr = [1,2,3,[4,5,6,[7,8,9,[10,11,12]]]]
console.log(arr.flat()) // [1,2,3,4,5,6,[7,8,9,[10,11,12]]]
console.log(arr.flat().flat()) // [1,2,3,4,5,6,7,8,9,[10,11,12]]
console.log(arr.flat().flat().flat()) // [1,2,3,4,5,6,7,8,9,10,11,12]
当然,flat函数也是可以传递参数的,里面的参数可以理解为将几维数组全部展开,就像这样
console.log(arr.flat(3)) // [1,2,3,4,5,6,7,8,9,10,11,12]
console.log(arr.flat(4)) // [1,2,3,4,5,6,7,8,9,10,11,12]
console.log(arr.flat(2)) // [1,2,3,4,5,6,7,8,9,[10,11,12]]
console.log(arr.flat(Infinity)) // [1,2,3,4,5,6,7,8,9,10,11,12] 不常用
同样,我们也可以通过flatMap关键字,解决以下痛点
const arr= [1,2,3,4,5]
const res = arr.map(x => x+1)
console.log(res) // [2,3,4,5,6]
const res = arr.map(x => [x+1])
console.log(res) // [[2],[3],[4],[5],[6]]
console.log(res.flat()) // [2,3,4,5,6]
const arr= [1,2,3,4,5]
const res = arr.flatMap(x => [x+1])
console.log(res) // [2,3,4,5,6]