ES7(ECMAScript 2016)是 ECMAScript 标准的第七个版本,其中包括了一些新的语言特性和 API。其中一个很实用的 API 是 Array.prototype.fill()
方法。本文将会详细讲解这个方法以及它的使用场景。
细节解析
Array.prototype.fill()
方法用于将数组的所有元素替换为一个指定的值。它的基本语法如下:
array.fill(value[, start[, end]])
参数说明:
value
:要替换的值。start
:可选参数,指定替换的起始位置。默认值为 0。如果是负数,则从数组末尾开始计算。end
:可选参数,指定替换的结束位置。默认值为数组的长度。如果是负数,则从数组末尾开始计算。
这个方法会返回修改后的数组对象,而不会创建一个新的数组。
使用场景
填充数组
我们经常需要将一个数组填充为一些固定值。比如要初始化一个表示游戏棋盘的二维数组,初始值可以是 0 或者空字符:
// 初始化一个 3 行 3 列的矩阵 const matrix = Array(3).fill(Array(3).fill(0));
上面的代码利用 fill()
方法将一个 3 行 3 列的二维数组初始化为全 0。需要注意,由于数组是引用类型,如果使用 fill()
方法来填充数组,其中的元素都会指向一个内存地址,因此修改其中一个元素会影响到整个数组。
在数组中插入值
除了将数组初始化为固定值之外,我们还可以使用 fill()
方法来向数组中插入值。这个方法比使用循环更加简洁和高效:
// 创建一个长度为 10,且值都为 0 的数组 const arr = Array(10).fill(0); // 在数组中的每隔 2 个元素插入一个 1 arr.fill(1, 0, arr.length, 2);
上面的代码中,我们首先使用 Array()
构造函数创建了一个长度为 10,且初始值都为 0 的数组。接着使用 fill()
方法,在数组中每隔两个元素插入一个 1。这样,我们就可以很方便地将新的元素插入到数组中间。
改变数组的一部分元素
有时候,我们需要改变数组的一部分元素的值。这个时候,fill()
方法也是可以胜任的:
// 替换数组中前 5 个元素为 1 const arr = [0, 0, 0, 0, 0, 1, 1, 1, 1, 1]; arr.fill(1, 0, 5);
上面的代码中,我们使用 fill()
方法将数组中前 5 个元素替换为 1。需要注意的是,传入的起始位置和结束位置参数只会影响到被替换的元素,而不会影响到其他元素的值。
总结
Array.prototype.fill()
方法可以用于将数组元素替换为一个指定的值。它的使用非常简单,可以用于填充数组、向数组中插入值以及改变数组的某些元素。如果你还没有使用过这个方法,建议尝试使用一下,相信它会让你的代码更加简洁和易于维护。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6541e3567d4982a6ebb80f0f