ES2019新变化
Jonnzer Lv4

1 数组:
数组降维:Array.prototype.flat() 递归地将嵌套数组拼合到指定深度 创建新数组,不改原数组

1
2
3
4
5
6
7
8
9
10
11
const arr1 = [1, 2, [3, 4]];
arr1.flat();
// [1, 2, 3, 4]

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

const arr3 = [1, 2, [3, 4, [5, 6, [7, 8]]]];
arr3.flat(Infinity);
// [1, 2, 3, 4, 5, 6, 7, 8]

flat还会移除数组空项

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

2 字符串
去头去尾: String.prototype.trimStart() 和 String.prototype.trimEnd() 创建新字符串,不修改原字符串

1
2
3
4
5
const test = " hello ";

test.trim(); // "hello";
test.trimStart(); // "hello ";
test.trimEnd(); // " hello";

3 对象
Object.fromEntries() 数组转对象
与之相对应的是Object.entries() 对象转数组

1
2
3
4
5
6
7
8
9
10
11
12
const obj = { prop1: 2, prop2: 10, prop3: 15 };

// 转化为键值对数组:
let array = Object.entries(obj);
// [["prop1", 2], ["prop2", 10], ["prop3", 15]]

array = array.map(([key, value]) => [key, Math.pow(value, 2)]);
// [["prop1", 4], ["prop2", 100], ["prop3", 225]]

const newObj = Object.fromEntries(array);
// {prop1: 4, prop2: 100, prop3: 225}

参考:
瓶子君的blog

  • 本文标题:ES2019新变化
  • 本文作者:Jonnzer
  • 创建时间:2020-07-20 17:37:05
  • 本文链接:https://jonnzer.github.io/2020/07/20/ES2019新属性/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论