5、 ES10
1. Object.fromEntries 对象扩展方法
创建一个对象,接收参数:二维数组或者Map数组。 与 Object.entries 相反
接收二维数组
const result = Object.fromEntries([
['name', 'zhangsan'],
['city', 'beijing, tianjin, shanghai']
])
console.log(result); // {name: "zhangsan", city: "beijing, tianjin, shanghai"}
接收Map数组
const m = new Map();
m.set('name', 'zhangsan');
m.set('city', 'beijing, tianjin, shanghai');
const result = Object.fromEntries(m);
console.log(result); // {name: "zhangsan", city: "beijing, tianjin, shanghai"}
2. trimStart trimEnd字符串扩展方法
trim 清除字符串两侧的空白字符
trimStart 清除字符串左侧的空白字符
trimEnd 清除字符串右侧的空白字符
let str = ' aass ';
console.log(str); // aass
console.log(str.trim()); // aass
console.log(str.trimStart()); // aass
console.log(str.trimEnd()); // aass
3. Array.prototype.flat / flatMap 数组扩展方法
将多维数组转换为一维数组
flat() 参数为深度,默认为1,表示一层。四维数组转一维数组,flat参数为3
如果不管有多少层嵌套,都要转成一维数组,可以用Infinity关键字作为参数。
如果原数组有空位,flat()方法会跳过空位
const arr = [1,2,[3,4],[5,6,[7,8,[9]]]];
console.log(arr.flat()); // (7) [1, 2, 3, 4, 5, 6, Array(3)]
console.log(arr.flat(2)); // (9) [1, 2, 3, 4, 5, 6, 7, 8, Array(1)]
console.log(arr.flat(3)); // (9) [1, 2, 3, 4, 5, 6, 7, 8, 9]
const arr = [1, 2, 3];
const result = arr.map(item => [item*10]);
console.log(result); // [Array(1), Array(1), Array(1)]
// 0: [10]
// 1: [20]
// 2: [30]
// 对 Map 降维
const result = arr.flatMap(item => [item*10]);
console.log(result); // [10, 20, 30]
// flatMap 只能降一个维度
const arr = [1, 2, 3];
const result = arr.flatMap(item => [[item*10]]);
console.log(result); // [Array(1), Array(1), Array(1)]
4. Symbol.prototype.description
let s = Symbol('haha');
console.log(s.description); // haha