在 JavaScript 中,数组是一种非常常见的数据类型。ES7 中,新增加了一个非常实用的方法 Array.prototype.fill()
,它可以让我们更方便地初始化一个数组,也可以方便地重置数组的值。
用法
Array.prototype.fill()
方法接收一个参数,用于填充数组的值,并且可以接收两个可选参数,用于指定填充的起始位置和结束位置。
语法
array.fill(value, start, end)
value
:填充数组的值。start
:可选参数,填充的起始位置,默认值为0。end
:可选参数,填充的结束位置,默认值为数组的长度。
示例
const arr = new Array(5).fill(0); // [0, 0, 0, 0, 0] arr.fill(1, 2, 4); // [0, 0, 1, 1, 0]
应用场景
1. 初始化数组
在开发中,我们可能会需要初始化一个数组,比如把一个长度为 n 的数组,初始化成一个元素都为 0 的数组。
使用传统的方式,需要循环遍历数组,赋值每一个元素。
const arr = new Array(5); for (let i = 0; i < arr.length; i++) { arr[i] = 0; }
而使用 Array.prototype.fill()
方法,一行代码就可以实现。
const arr = new Array(5).fill(0); // [0, 0, 0, 0, 0]
2. 重置数组
在某些情况下,我们需要将数组中的所有元素重置为相同的值,比如用来清空缓存。
let cache = ['a', 'b', 'c']; cache = cache.fill(null);
此时,cache
数组中所有元素都被赋值为 null
。
3. 生成特定数组
通过设置 value
参数,我们可以轻松地生成一个指定元素的数组。
比如,生成一个长度为10,所有元素都为字符串 "hello" 的数组。
const arr = new Array(10).fill('hello'); // ['hello', 'hello', ..., 'hello']
注意事项
需要注意的是,Array.prototype.fill()
方法会永久性地改变原数组。如果需要创建一个新的数组,可以使用 Array.prototype.slice()
方法复制一份新的数组。
const originArr = [1, 2, 3]; const newArr = originArr.slice().fill(0); // [0, 0, 0]
总结
Array.prototype.fill()
是一种常用的数组操作方法,它可以方便地初始化数组和重置数组,为我们的开发提供了很大的便利。
敬请期待更多 ES7 的相关技术文章。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/649686aa48841e98943b2054