ES2019(ES10)新增特性
1. 字符串对象新增方法
2 数组对象新增方法
方法名 |
描述 |
flat() |
实现数组扁平化,创建一个新的数组,并根据指定深度递归地将所有子数组元素拼接到新的数组中。 |
flatMap() |
相当于再调用 map() 后再调用深度为 1 的 flat(),返回一个新数组 |
① flat() 方法
flat()
方法的参数是一个整数,表示想要拉平的层数,默认为1,表示拉平一层。如果不管有多少层嵌套,都要转成一维数组,可以用Infinity
关键字作为参数。
[1, 2, [3, 4]].flat();
[1, 2, [3, [4, 5]]].flat();
[1, 2, [3, [4, 5]]].flat(2);
[1, [2, [3]]].flat(Infinity);
[1, 2, , 4, 5].flat()
② flatMap 方法
flatMap()
方法的参数是一个回调函数,该回调函数可以接受三个参数,分别是当前数组成员、当前数组成员的位置(从零开始)、原数组。flatMap()
只能展开一层数组。
[2, 3, 4].flatMap((x) => [x, x * 2])
[['a','b','c'], ['A', 'B', 'C', 'D'], 100].flatMap((item,index) => {
if (item instanceof Array) {
item.push('我是追加的');
}
return item;
});
[1, 2, 3, 4].flatMap(x => [[x * 2]]);
3 Symbol 对象新增方法
属性名 |
描述 |
description |
Symbol 对象的可选描述的字符串。 |
const sym = Symbol('foo');
sym.description