ECMAScript 2020 中新增了一些非常有用的数组方法,这些方法可以大大提高数组的操作效率。本文将详细介绍这些方法,并给出相应的示例代码,希望对前端开发者有所帮助。
数组扁平化
在 ECMAScript 2020 中,新增了 flat 和 flatMap 两个方法,这两个方法可以用来将嵌套的数组扁平化。
flat 方法
flat 方法接收一个可选的参数,表示要将嵌套的数组扁平化的深度,默认值为 1。如果想将所有嵌套的数组都扁平化,可以将该参数设置为 Infinity。
const arr = [1, [2, [3, [4, 5]]]]; console.log(arr.flat()); // [1, 2, [3, [4, 5]]] console.log(arr.flat(1)); // [1, 2, [3, [4, 5]]] console.log(arr.flat(2)); // [1, 2, 3, [4, 5]] console.log(arr.flat(Infinity)); // [1, 2, 3, 4, 5]
flatMap 方法
flatMap 方法结合了 map 和 flat 两个方法的功能,可以将一个数组通过指定的函数映射后,再进行一次 flatten 操作。
const arr = [1, 2, 3, 4, 5]; console.log(arr.flatMap(x => [x * 2])); // [2, 4, 6, 8, 10]
数组去重
在 ECMAScript 2020 中,新增了两个去重方法:uni和 unionWith。
uniq 方法
uniq 方法可以用来去除数组中的重复元素。
const arr = [1, 2, 2, 3, 4, 4, 5]; console.log(arr.uniq()); // [1, 2, 3, 4, 5]
unionWith 方法
unionWith 方法可以用来合并两个数组,并去除重复的元素。与 uniq 方法不同的是,unionWith 方法需要传入一个比较函数,用于判断元素是否重复。
const arr1 = [1, 2, 3]; const arr2 = [2, 3, 4]; console.log(arr1.unionWith(arr2, (a, b) => a === b)); // [1, 2, 3, 4]
数组的批量操作
在 ECMAScript 2020 中,新增了一些方便批量操作数组的方法。
fill 方法
fill 方法可以用来将数组的指定位置填充为指定的值。
const arr = new Array(10).fill(0); console.log(arr); // [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
fromEntries 方法
fromEntries 方法可以通过输入一个键值对的数组,返回一个新的对象。
const entries = [['name', 'Tom'], ['age', 18]]; console.log(Object.fromEntries(entries)); // {name: "Tom", age: 18}
copyWithin 方法
copyWithin 方法可以将指定区域的元素复制到数组内的其他位置。
const arr = [1, 2, 3, 4, 5]; console.log(arr.copyWithin(0, 3, 5)); // [4, 5, 3, 4, 5]
总结
ECMAScript 2020 中新增了一些非常实用的数组方法,通过使用这些方法,我们不仅可以提高数组的操作效率,还可以写出更加优雅的代码。希望本文能够帮助到前端开发者,欢迎多加利用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/649a49ec48841e9894728a2a