ES9(ECMAScript 2018)是 JavaScript 的最新版本,它引入了一些新的数组方法,这些方法可以帮助开发人员更加轻松地操作数组。本文将介绍这些新的数组方法,并提供详细的说明和示例代码。
Array.prototype.flat()
Array.prototype.flat()
方法可以将嵌套的数组“拍平”,即将多维数组转换为一维数组。该方法可以接受一个可选的参数,用于指定拍平的深度。
const arr = [1, 2, [3, 4, [5, 6]]]; const flatArr = arr.flat(2); console.log(flatArr); // [1, 2, 3, 4, 5, 6]
Array.prototype.flatMap()
Array.prototype.flatMap()
方法可以在一个操作中执行 map()
和 flat()
方法。该方法首先对数组进行映射,然后将结果拍平成一维数组。
const arr = [1, 2, 3]; const flatMapArr = arr.flatMap((x) => [x * 2]); console.log(flatMapArr); // [2, 4, 6]
Array.prototype.@@iterator()
Array.prototype.@@iterator()
方法可以返回一个数组的迭代器对象,该对象可以用于遍历数组中的所有元素。
const arr = [1, 2, 3]; const iterator = arr[Symbol.iterator](); console.log(iterator.next()); // { value: 1, done: false } console.log(iterator.next()); // { value: 2, done: false } console.log(iterator.next()); // { value: 3, done: false } console.log(iterator.next()); // { value: undefined, done: true }
Array.prototype.at()
Array.prototype.at()
方法可以返回数组中指定索引位置的元素。该方法支持负数索引,-1 表示数组的最后一个元素。
const arr = ['a', 'b', 'c']; console.log(arr.at(0)); // 'a' console.log(arr.at(-1)); // 'c'
Object.fromEntries()
Object.fromEntries()
方法可以将一个键值对数组转换为一个对象。
const entries = [['name', 'John'], ['age', 30]]; const obj = Object.fromEntries(entries); console.log(obj); // { name: 'John', age: 30 }
总结
ES9 引入的这些新的数组方法可以帮助开发人员更加轻松地操作数组。Array.prototype.flat()
方法可以将嵌套的数组“拍平”,Array.prototype.flatMap()
方法可以在一个操作中执行 map()
和 flat()
方法,Array.prototype.@@iterator()
方法可以返回一个数组的迭代器对象,Array.prototype.at()
方法可以返回数组中指定索引位置的元素,Object.fromEntries()
方法可以将一个键值对数组转换为一个对象。这些方法可以提高开发人员的工作效率,值得我们学习和掌握。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/657fbc8ed2f5e1655da976cd