在 ES9 中,迭代器得到了最新的扩展操作。这些扩展操作包括 Array.prototype.flat()
、Array.prototype.flatMap()
和 Object.fromEntries()
,它们极大地扩展了我们在使用迭代器时的操作能力。
Array.prototype.flat()
Array.prototype.flat()
方法可以将一个多维的数组压扁成一个一维数组。这个方法可以接受一个可选参数 depth
,用于指定需要压扁的维度层数。
const arr = [1, [2, 3], [[4, 5], [6, [7, 8]]], 9]; const flattenedArr = arr.flat(2); console.log(flattenedArr); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
上述代码中,arr
是一个多维数组,我们通过使用 flat(2)
将其压扁成一个一维数组。
Array.prototype.flatMap()
Array.prototype.flatMap()
方法首先使用映射函数将每个元素映射为一个新的数组,然后将这些数组压扁成一个一维数组。与 Array.prototype.map()
方法类似,这个方法也接受一个映射函数。
const arr = [1, 2, 3]; const flatMappedArr = arr.flatMap((x) => [x * 2]); console.log(flatMappedArr); // [2, 4, 6]
在上述代码中,我们使用 flatMap()
方法将数组 [1, 2, 3]
中的每个元素都乘以 2,最终得到了一个新的数组 [2, 4, 6]
。
Object.fromEntries()
Object.fromEntries()
方法可以将一个键值对数组转换为一个对象。这个方法可以与 Object.entries()
方法配合使用,Object.entries()
可以将一个对象的键值对转换为一个键值对数组。
const entries = [['a', 1], ['b', 2], ['c', 3]]; const obj = Object.fromEntries(entries); console.log(obj); // {a: 1, b: 2, c: 3}
在上述代码中,我们使用 Object.entries()
将一个对象转换为键值对数组,然后使用 Object.fromEntries()
将该数组转换为一个新的对象。
总结
ES9 中迭代器的扩展操作 Array.prototype.flat()
、Array.prototype.flatMap()
和 Object.fromEntries()
,为我们在使用迭代器时提供了更多的灵活性和功能性。在日常开发中,我们可以充分利用这些操作对我们的开发工作带来帮助,并提高我们的代码效率。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6544aa637d4982a6ebe81c94