1. Array.fill
描述
fill()
方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。fill
方法会改变数组,并且返回修改后的数组
1.2 Array.fill
语法
fill(value, start, end)
参数:
value
:填充数组元素的值start
:(可选)起始索引,未填默认为0end
:(可选)结束索引,未填默认为arr.length
注:Array.fill(1,-3,-2)
,start
和end
接受负值,而start
会被自动计算成arr.length + start
,end
会被自动计算成arr.length + end
2. Array.fill
应用
2.1 Array.fill
范例
Array.fill(value)
let arr = [];
console.log(arr.fill({
id: 1 })); // 输出 [], 空数组 依旧为空
let arr = [1, 2, 3];
console.log(arr.fill({
id: 1 })); // 输出 [{id: 1},{id: 1},{id: 1}], 覆盖数组全部元素
Array.fill(value, start)
let arr = [1, 2, 3, 4, 5];
console.log(arr.fill(66, 2)); // 输出 [1, 2, 66, 66, 66], 从下标2开始(包括下标2元素)
let arr = [1, 2, 3, 4, 5];
console.log(arr.fill(66, 5)); // 输出 [1, 2, 3, 4, 5], 超出引用数组索引,数组则不变
let arr = [1, 2, 3, 4, 5];
console.log(arr.fill(66, -3));// 输出 [1, 2, 66, 66, 66], start = arr.length + start(start = 5 + -3 = 2)
let arr = [1, 2, 3, 4, 5];
console.log(arr.fill(66, -5));// 输出 [66, 66, 66, 66, 66], 负数>arr.length,则全部覆盖
Array.fill(value, start, end)
let arr = [1, 2, 3, 4, 5];
console.log(arr.fill(66, 0, 3)); // 输出 [66, 66, 66, 4, 5], 不包括结束索引3
let arr = [1, 2, 3, 4, 5];
console.log(arr.fill(66, 2, 2)); // 输出 [1, 2, 3, 4, 5], end > start, 则不会改变数组
let arr = [1, 2, 3, 4, 5];
console.log(arr.fill(66, 0, -1)); // 输出 [66, 66, 66, 66, 5], end = -1 + 5 = 4
2.2 创建数组对象并赋予初始值
let arr = new Array(3).fill(0);
console.log(arr); // 输出 [0, 0, 0]