ES10特性

1.新增Array的flat()方法  Array.prototype.flat()  

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

1-1  flat ()方法最基本的作用就是数组降维

var arr = [1,2,[3,4]]
arr1.flat()   // [1,2,3,4]

var arr2 = [1,2,[3,4,[5,6]]]
arr2.flat()   // [1,2,3,4,[5,6]]

var arr3 = [1,2,[3,4,[5,6]]]
arr3.flat(1)   // [1,2,3,4,[5,6]]
arr3.flat(2)   // [1,2,3,4,5,6]
arr3.flat(Infinity)   // [1,2,3,4,5,6]




1-2 flat()方法的特性来去除数组的空项

var arr4 = [1,2,,4,5]
arr4.flat()   // [1,2,4,5]

2.Array.prototype.flatMap()

flatMap() 方法首先使用映射函数映射每个元素,然后将结果压缩成一个新数组。它与 map 和 深度值1的 flat 几乎相同,但 flatMap 通常在合并成一种方法的效率稍微高一些。 这里我们拿map方法与flatMap方法做一个比较。

var arr1 = [1, 2, 3, 4];
 
arr1.map(x => [x * 2]); 
// [[2], [4], [6], [8]]
 
arr1.flatMap(x => [x * 2]);
// [2, 4, 6, 8]
 
// 只会将 flatMap 中的函数返回的数组 “压平” 一层
arr1.flatMap(x => [[x * 2]]);
// [[2], [4], [6], [8]]

3.新增了String的trimStart()方法和trimEnd()方法 (分别去除字符串首尾空白字符)

4.Object.fromEntries() 把键值对列表转换为一个对象,这个方法是和 Object.entries() 相对的。

Object.fromEntries([
    ['foo', 1],
    ['bar', 2]
])

// {foo: 1, bar: 2}


1.Object 转换操作
const obj = {
    name: 'jimmy',
    age: 18
}
const entries = Object.entries(obj)
console.log(entries)  // [Array(2), Array(2)]

// ES10
const fromEntries = Object.fromEntries(entries)
console.log(fromEntries)  // {name: "jimmy", age: 18}

2.Map 转 Object

const map = new Map()
map.set('name', 'jimmy')
map.set('age', 18)
console.log(map) // {'name' => 'jimmy', 'age' => 18}

const obj = Object.fromEntries(map)
console.log(obj)  // {name: "jimmy", age: 18}

3.过滤

course表示所有课程,想请求课程分数大于80的课程组成的对象:

const course = {
    math: 80,
    english: 85,
    chinese: 90
}
const res = Object.entries(course).filter(([key, val]) => val > 80)
console.log(res) // [ [ 'english', 85 ], [ 'chinese', 90 ] ]
console.log(Object.fromEntries(res)) // { english: 85, chinese: 90 }

4.url的search参数转换
// let url = "https://www.baidu.com?name=jimmy&age=18&height=1.88"
// queryString 为 window.location.search
const queryString = "?name=jimmy&age=18&height=1.88";
const queryParams = new URLSearchParams(queryString);
const paramObj = Object.fromEntries(queryParams);
console.log(paramObj); // { name: 'jimmy', age: '18', height: '1.88' }

猜你喜欢

转载自blog.csdn.net/qq_42753983/article/details/127207597
今日推荐