js数组API详解(1)---fill和copyWithin

fill方法

解释:ES6新增方法,对数组进行填充。方法类似函数签名,需要指定既有数组实例上的一个范围,包括开始索引,不包括结束索引,使用这个方法不会改变数组的大小

作用:使用fill方法可以向一个已有的数据中插入全部或部分相同的值。

参数

参数描述
value用于填充的值
start开始索引(可选)
end结束索引(可选,若果不提供,则一直填充到数组末尾)

负值索引从数组的末尾开始计算,也可以将负索引想象成数组长度加上它得到一个正索引

实例:

const temp = [0, 0, 0, 0, 0];
// 用6填充这个数组
temp.fill(6);
console.log(temp); //[ 6, 6, 6, 6, 6 ]
// 重置
temp.fill(0);

// 用6填充索引大于3的元素
temp.fill(6, 3); //[ 0, 0, 0, 6, 6 ]
console.log(temp);
// 重置
temp.fill(0);

// 用6填充索引大于1小于3的元素---含头不含尾
temp.fill(6, 1, 3);
console.log(temp); //[ 0, 6, 6, 0, 0 ]
// 重置
temp.fill(0);

// 用8填充索引大于1小于4的元素
// (-4 + 数组长度 = 1)
// (-1 + 数组长度 = 4)
temp.fill(8, -4, -1); //[ 0, 8, 8, 8, 0 ]
console.log(temp);

copyWithin方法

解释:ES6新增方法,同fill一样类似函数签名,需要指定既有数组实例上的一个范围,包括开始索引,不包括结束索引,使用这个方法不会改变数组的大小。

作用:进行批量复制,copyWithin会按照指定范围浅复制数组中的部分内容,然后将它们插入到指定索引开始的位置。

参数:

参数描述
insert要插入的位置
start从start开始复制(可选,没有则从索引为0开始复制)
end到end结束(可选)

实例:

// 重置方法
let temp;
let reset = () => {
  temp = [1, 2, 3, 4, 5, 6, 7, 8, 9];
};
reset();
//从0开始复制 插入到5开始的位置
temp.copyWithin(5); //[1, 2, 3, 4, 5,1, 2, 3, 4]
console.log(temp);
reset();
//从5开始复制  插入到0开始的位置
temp.copyWithin(0, 5); //[6, 7, 8, 9, 5, 6, 7, 8, 9]
console.log(temp);
reset();
//从0开始复制到3结束(复制含头不含尾)  插入4开始的位置
temp.copyWithin(4, 0, 3); //[6, 7, 8, 9, 5, 6, 7, 8, 9]
console.log(temp); //[1, 2, 3, 4, 1, 2, 3, 8, 9]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值