ES2019
1、数组实例 flat() / flatMap()
当数组的成员还是数组,若想将其变成一维数组,则需将其 "拉平". 两个实例方法都是返回一个新的数组,不改变原数组。
- flat(depth)
depth: number。 默认 1,即之展开一层;若想全部展开,直接用 Infinity。
let arr = [1, 3, [5, 7, ['a', 'b']]]
let resultArr = arr.flat()
console.log(arr) // [1, 3, [5, 7, ['a', 'b']]]
console.log(resultArr) // [1, 3, 5, 7, ['a', 'b']]
let resultArr2 - arr.flat(Infinity)
console.log(resultArr2) // [1, 3, 5, 7, "a", "b"]
复制代码
- flatMap(callback)
flatMap() 方法对原数组的每个成员执行一个函数(相当于执行Array.prototype.map()),然后对返回值组成的数组执行flat() 方法。该方法返回一个新数组,不改变原数组。
let arr = [1, 3, 5, 7]
let resultArr = arr.flatMap((x) => [x * 2])
console.log(resultArr3) // [2, 6, 10, 14]
复制代码
- map()
let arr_map = [1, 2, 3, 4]
let resultArr4 = arr_map.map(x => [x *2])
console.log(resultArr4); // [[2], [4], [6], [8]]
复制代码
Object.fromEntries
Object.fromEntries
是 Object.entries
(点击参考) 的反向
const records = [['name', 'Tom'], ['age', 30]]
const records_obj = Object.fromEntries(records); // {'name': 'Tom', 'age': 30}
复制代码
PS: Object.fromEntries
chorome 目前还不支持。2019/03/25
String.prototype.{trimStart, trimEnd}
删除 开头/结尾 空格
const str = ' Hello javaScript! '
console.log(str.length) // 22
console.log(str.trimStart()) // 'Hello javaScript! '
console.log(str.trimStart().length) // 20
console.log(str.trimEnd()) // ' Hello javaScript!'
console.log(str.trimEnd().length) // 19
复制代码
try / catch
回顾之前:
try {
JSON.parse(text)
} catch (error) {
console.log(error); // ReferenceError: text is not defined
}
复制代码
但有时候 error 是不需要使用, 可以不用写。
function fn(text) {
try {
JSON.parse(text)
return true
} catch {
return false
}
}
console.log(fn()) // false
复制代码
不是很明白这个提案的意义,error 信息用不到,就直接忽略就可以了嘛