Array.fill()的两个用法

317 阅读1分钟

基本用法

Array.prototype.fill()方法可以将数组中所有指定项更改为固定值。

let names = ['zhangsan','lisi','wangwu']
names.fill('香菜')

console.log(names)
// logs ['香菜','香菜','香菜']

替换数组中的项

默认情况下,Array.fill()方法将数组中的每个项替换掉。 但是,可以将开始索引值和结束索引值指定为可选参数,如果省掉开始索引,默认从0开始,如果省掉结束索引,将默认数组的尾部。 将上面的方法重写一下:

let names = ['zhangsan','lisi','wangwu']
names.fill('香菜', 0, 1)

console.log(names)
// logs ['香菜','lisi','wangwu']

但是,Array.splice()方法更好,写了个寂寞

names.splice(0, 1, '香菜')

创建一个包含n项的新数组

如果想生成动态数组,可以使用new array()构造函数创建特定长度的数组,但该数组是空的(尽管有长度),因此像Array.foreach()Array.map()这样的循环方法实际上不会做任何事情。

let arr = new Array(10)

arr.forEach((item, index) => console.log(index))

let indexs = arr.map((item, index) => index)

console.log(indexs)

可以使用for循环来解决这个问题:

let arr = []

for(let i = 0; i < 10; i++) {
    arr.push(i)
}

但是这样显的很傻(KPI代码),尝试用Array.fill()来改变一下:

let arr = new Array(10).fill(0)