JavaScript 数组是开发者在前端开发中经常使用的数据结构之一。在 ES9 中,新增了一些数组方法,让开发者更加方便地操作数组。本文将介绍 ES9 中不同的 JavaScript 数组方法,并附带示例代码。
Array.prototype.flat()
Array.prototype.flat() 方法用于将嵌套的数组“展平”,即将嵌套的数组变成一维数组。该方法可以传入一个参数,用于指定要“展平”的层数,默认值为 1。
示例代码
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() 方法是 Array.prototype.map() 方法和 Array.prototype.flat() 方法的组合。该方法先对数组进行映射操作,再将映射结果“展平”。
示例代码
const arr = [1, 2, 3]; const flatMapArr = arr.flatMap(x => [x * 2]); console.log(flatMapArr); // [2, 4, 6]
Array.prototype.from()
Array.prototype.from() 方法用于将类数组对象或可迭代对象转换成数组。该方法可以接受一个可选的映射函数作为参数,用于对数组中的每个元素进行映射。
示例代码
const arrLikeObj = { 0: 'a', 1: 'b', 2: 'c', length: 3 }; const arr = Array.from(arrLikeObj); console.log(arr); // ['a', 'b', 'c']
Array.prototype.entries()
Array.prototype.entries() 方法返回一个迭代器对象,用于遍历数组中的每个元素。该迭代器对象返回的每个元素都是一个包含当前元素索引和值的数组。
示例代码
const arr = ['a', 'b', 'c']; const entries = arr.entries(); console.log(entries.next().value); // [0, 'a'] console.log(entries.next().value); // [1, 'b'] console.log(entries.next().value); // [2, 'c']
Array.prototype.keys()
Array.prototype.keys() 方法返回一个迭代器对象,用于遍历数组中的每个元素的索引。
示例代码
const arr = ['a', 'b', 'c']; const keys = arr.keys(); console.log(keys.next().value); // 0 console.log(keys.next().value); // 1 console.log(keys.next().value); // 2
Array.prototype.values()
Array.prototype.values() 方法返回一个迭代器对象,用于遍历数组中的每个元素的值。
示例代码
const arr = ['a', 'b', 'c']; const values = arr.values(); console.log(values.next().value); // 'a' console.log(values.next().value); // 'b' console.log(values.next().value); // 'c'
总结
ES9 中新增的数组方法使得开发者可以更加方便地操作数组,提高了开发效率。其中,Array.prototype.flat() 和 Array.prototype.flatMap() 方法是比较实用的方法,可以在处理嵌套数组时发挥重要的作用。同时,Array.prototype.from() 方法也可以将类数组对象或可迭代对象转换成数组,方便开发者进行后续操作。Array.prototype.entries()、Array.prototype.keys() 和 Array.prototype.values() 方法则可以帮助开发者更加方便地遍历数组。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/660f91a2d10417a222021178