在 JavaScript 中,数组是一种非常常见的数据结构,它提供了很多操作数组的方法。ES7 中新增了一个方法 Array.prototype.fill(),它可以填充数组中的元素,让我们来详细了解一下。
什么是 Array.prototype.fill() 方法
Array.prototype.fill() 方法用于将一个固定值填充到数组中的指定位置,可以用来初始化数组或者替换数组中的元素。该方法有三个参数:
- value:要填充的值。
- start:填充的起始位置,默认为 0。
- end:填充的结束位置,默认为数组的长度。
Array.prototype.fill() 方法的使用
初始化数组
使用 Array.prototype.fill() 方法可以方便地初始化一个数组。比如,我们要创建一个长度为 5 的数组,每个元素都是 0,可以这样写:
const arr = new Array(5).fill(0); console.log(arr); // [0, 0, 0, 0, 0]
替换数组中的元素
使用 Array.prototype.fill() 方法可以方便地替换数组中的元素。比如,我们要将数组中的所有奇数替换成 1,可以这样写:
const arr = [1, 2, 3, 4, 5]; arr.fill(1, 0, arr.length, 2); console.log(arr); // [1, 2, 1, 4, 1]
上面的代码中,我们将数组中的所有奇数替换成了 1,fill() 方法的第一个参数是要填充的值,第二个参数是填充的起始位置,第三个参数是填充的结束位置,第四个参数是每隔几个元素填充一次。
注意事项
需要注意的是,Array.prototype.fill() 方法会修改原数组,如果需要复制一份数组再进行填充操作,可以使用 Array.prototype.slice() 方法。
const arr = [1, 2, 3, 4, 5]; const newArr = arr.slice().fill(1, 0, arr.length, 2); console.log(arr); // [1, 2, 3, 4, 5] console.log(newArr); // [1, 2, 1, 4, 1]
总结
Array.prototype.fill() 方法可以方便地填充数组中的元素,可以用来初始化数组或者替换数组中的元素。需要注意的是,该方法会修改原数组,如果需要复制一份数组再进行填充操作,可以使用 Array.prototype.slice() 方法。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65c9f6fdadd4f0e0ff3d2873