简单理解Arrays.fill()函数

一、函数概述

fill() 函数提供将数组中给定范围内的所有元素更改为特定值的功能。

  • 第一个参数是 value这个参数可以是任何值,将会用来把新数组的指定的范围填充为相同的值。
  • 第二个参数是 start。这个参数是填值范围的起始索引,且该范围将会包括 start 索引位。此参数可选,未指定的话则默认为 0
  • 第三个参数是 end。这个参数是填值范围的结尾索引,且该范围将不包括索引处的值。这个参数是可选的,未指定的话则默认为数组的长度值(Array.length),也就是如果未指定这个参数的话将会填充到数组的结尾。

二、普通数值

1. 正起始索引值

var array = [1, 2, 3, 4, 5];
array.fill(0, 2);
// array: [1, 2, 0, 0, 0]

fill() 函数传入参数 0 和 2 来进行调用,相当于 fill(0, 2, 5)。这意味着指定值的填充范围为从索引 2 开始直到数组的结尾。


2. 负起始索引值

var array = [1, 2, 3, 4, 5];
array.fill(0, -2);
// array: [1, 2, 3, 0, 0]

这个函数调用相当于 fill(0, 3, 5)这意味着指定值的填充范围为从索引 3 开始直到数组的结尾。

注意:如果这个值导致 start 参数值加上数组长度仍然小于 0 的话,fill() 函数将忽略起始索引值,并从数组的开头用指定值填充数组。


3. 正起始索引值,正结尾索引值

var array = [1, 2, 3, 4, 5];
array.fill(0, 2, 4);
// array: [1, 2, 0, 0, 5]

注意:指定正的 end 参数值时需要注意的是,如果这个值大于数组长度,则 fill() 函数将忽略 end 参数值,并填充特定值到数组结尾。


4. 正起始索引值,负结尾索引值

var array = [1, 2, 3, 4, 5];
array.fill(0, 2, -3);
// array: [1, 2, 3, 4, 5]

注意:由于这两个索引参数值相同,索引特定值不会填充任何数组项,因此数组状态和执行函数前的状态完全相同。

当使用 fill() 函数时,在以下任何一种情况下,都会发生结果数组与执行该函数之前状态完全相同的情况:end 参数值小于 start 参数值;start 参数值等于或大于数组长度;或者 end 参数值等于或小于0


三、对象值

var array = [1, 2, 3];
array.fill({ a: 1, b: 2 });
// array: [{ a: 1, b: 2 }, { a: 1, b: 2 }, { a: 1, b: 2 }]

fill() 函数传入对象值参数 value 来进行调用。相当于 fill({ a: 1, b: 2 }, 0, 3)。这意味着特定值的填充范围是从头到尾包含整个数组。尽管之前的示例中都使用的是原始值 0 用作 value 参数值,但该代码示例表明当必要时也可使用对象值来填充数组的指定范围。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值