ECMAScript 2016 中的 Array.prototype.fill 实现与应用
在 ECMAScript 2016 中,新增了 Array.prototype.fill 方法,它可以用来填充一个数组,可以是一个固定值或者是一个函数返回的值。本文将详细介绍 Array.prototype.fill 的实现方法及其应用场景。
Array.prototype.fill 的实现方法
Array.prototype.fill 方法有两个参数,第一个参数是要填充的值,第二个参数是可选参数,表示要填充的起始位置和结束位置。如果只传入一个参数,则默认从数组的第一个元素开始填充到最后一个元素。
下面是一个使用 for 循环实现 Array.prototype.fill 的例子:
Array.prototype.fill = function(value, start = 0, end = this.length) { for (let i = start; i < end; i++) { this[i] = value; } return this; }
上述代码中,我们首先给 Array.prototype.fill 添加了一个参数默认值,然后使用 for 循环遍历要填充的起始位置和结束位置之间的元素,将它们赋值为要填充的值。
Array.prototype.fill 的应用场景
Array.prototype.fill 可以用来填充数组,主要有以下几个应用场景:
- 初始化数组
在创建一个数组时,我们可以使用 Array.prototype.fill 来初始化数组,如下所示:
const arr = new Array(10).fill(0); console.log(arr); // [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
上述代码中,我们创建了一个长度为 10 的数组,并将其所有元素都填充为 0。
- 替换数组中的元素
我们可以使用 Array.prototype.fill 来替换数组中的元素,如下所示:
const arr = [1, 2, 3, 4, 5]; arr.fill(0, 1, 4); console.log(arr); // [1, 0, 0, 0, 5]
上述代码中,我们将数组 arr 中索引从 1 到 4 的元素都替换为 0。
- 创建一个指定范围的随机数数组
我们可以使用 Array.prototype.fill 和 Math.random() 方法来创建一个指定范围的随机数数组,如下所示:
const arr = new Array(10).fill().map(() => Math.floor(Math.random() * 10)); console.log(arr); // [5, 7, 1, 8, 5, 3, 9, 2, 6, 5]
上述代码中,我们先创建了一个长度为 10 的数组,并使用 fill 方法将其所有元素都填充为 undefined,然后使用 map 方法遍历数组中的每个元素,并将其替换为一个 0 到 9 之间的随机整数。
总结
Array.prototype.fill 是 ECMAScript 2016 中新增的一个方法,它可以用来填充数组。我们可以使用 for 循环来实现 Array.prototype.fill,也可以直接使用 Array.prototype.fill 方法。在实际开发中,我们可以使用 Array.prototype.fill 来初始化数组、替换数组中的元素以及创建一个指定范围的随机数数组。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65d30fc0add4f0e0ffb505bf