ES2019(ES10)新增特性

1. 字符串对象新增方法

方法名 描述
trimStart() 清除字符串头部的空格
trimEnd() 清除字符串尾部的空格

2 数组对象新增方法

方法名 描述
flat() 实现数组扁平化,创建一个新的数组,并根据指定深度递归地将所有子数组元素拼接到新的数组中。
flatMap() 相当于再调用 map() 后再调用深度为 1 的 flat(),返回一个新数组

① flat() 方法

flat() 方法的参数是一个整数,表示想要拉平的层数,默认为1,表示拉平一层。如果不管有多少层嵌套,都要转成一维数组,可以用Infinity关键字作为参数。

[1, 2, [3, 4]].flat();    // [1, 2, 3, 4]
[1, 2, [3, [4, 5]]].flat();    // [1, 2, 3, [4, 5]]
[1, 2, [3, [4, 5]]].flat(2);    // [1, 2, 3, 4, 5]
[1, [2, [3]]].flat(Infinity);    // [1, 2, 3]
[1, 2, , 4, 5].flat()    // [1, 2, 4, 5]

② flatMap 方法

flatMap()方法的参数是一个回调函数,该回调函数可以接受三个参数,分别是当前数组成员、当前数组成员的位置(从零开始)、原数组。flatMap()只能展开一层数组。

[2, 3, 4].flatMap((x) => [x, x * 2])        // [2, 4, 3, 6, 4, 8]; 相当于 [[2, 4], [3, 6], [4, 8]].flat()

[['a','b','c'], ['A', 'B', 'C', 'D'], 100].flatMap((item,index) => {
  if (item instanceof Array) {
    item.push('我是追加的');
  }
  return item;
});     // ["a", "b", "c", "我是追加的", "A", "B", "C", "D", "我是追加的", 100]

[1, 2, 3, 4].flatMap(x => [[x * 2]]);    // [[2], [4], [6], [8]]  只能展开一层数组。

3 Symbol 对象新增方法

属性名 描述
description Symbol 对象的可选描述的字符串。
const sym = Symbol('foo');
sym.description // "foo"

results matching ""

    No results matching ""