• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ES6数组复制和填充方法copyWithin()、fill()的具体使用

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

copyWithin()、fill()共同点

  • 需要指定一个数组实例的范围:包含开始索引,不包含结束索引。
  • 使用这个方法会改变数组内容,但不会改变数组的大小。

批量复制 copyWithin()

  • copyWithin() 方法用于从数组的指定位置拷贝元素到数组的另一个指定位置中。
  • copyWithin()会按照指定范围浅复制数组中的部分内容,然后将它们插入到指定索引开始的位置。

语法

array.copyWithin(target, start, end)

参数:

参数 描述
target 必需。复制到指定目标索引位置。
start 可选。元素复制的起始位置。
end 可选。停止复制的索引位置 (默认为 array.length)。如果为负值,表示倒数。

返回值:返回复制之后的数组

代码实例:

// 复制数组的前面两个元素到后面两个元素上:
var fruits = ["Banana", "Orange", "Apple", "Mango"]; 
fruits.copyWithin(2, 0);//Banana,Orange,Banana,Orange

// 复制数组的前面两个元素到第三和第四个位置上:
var fruits = ["Banana", "Orange", "Apple", "Mango", "Kiwi", "Papaya"]; 
fruits.copyWithin(2, 0, 2);//Banana,Orange,Banana,Orange,Kiwi,Papaya

填充数组方法 fill()

fill() 方法用于将一个固定值替换数组的元素。

语法:

array.fill(value, start, end)

参数:

参数 描述
value 必需。填充的值。
start 可选。开始填充位置。
end 可选。停止填充位置 (默认为 array.length)

返回值:数组

代码实例:

//填充 "Runoob" 到数组的最后两个元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"]; 
fruits.fill("Runoob", 2, 4);//[ "Banana", "Orange", "Runoob", "Runoob" ]

//使用固定值填充数组:
var fruits = ["Banana", "Orange", "Apple", "Mango"]; 
fruits.fill("Runoob");//Runoob,Runoob,Runoob,Runoob

关于索引的计算方式,两种方法相同

  • 开始索引用于指定开始填充的位置,它是可选的。
  • 如果不提供结束索引,则一直填充到数组末尾。
  • 负值索引从数组末尾开始计算。也可以将负索引想象成数组长度加上它得到的一个正索引。
  • 静默忽略超出数组边界、零长度及方向相反的索引范围。

代码实例:

const zeroes = [0,0,0,0,0];

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

//用7填充索引大于等于1且小于3的元素
zeroes.fill(7,1,3);//[0,7,7,0,0]
zeroes.fill(0);//重置

//用8填充索引大于等于1且小于4的元素
//(-4+zeroes.length=1) (-1+zeroes.length=4)
zeroes.fill(8,-4,-1);//[0,8,8,8,0]

//索引过低,忽略
zeroes.fill(1,-10,-6);//[0,0,0,0,0]
//索引过高,忽略
zeroes.fill(1,10,15);//[0,0,0,0,0]
//索引反向,忽略
zeroes.fill(2,4,2);//[0,0,0,0,0]
//索引部分可用,填充可用部分
zeroes.fill(4,3,10);//[0,0,0,4,4]

到此这篇关于ES6复制和填充方法copyWithin()、fill()的具体使用的文章就介绍到这了,更多相关ES6 copyWithin()、fill()内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界!


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
今天分享几个少见却很有用的 JS 技巧发布时间:2022-02-05
下一篇:
JavaScript实现放大镜效果发布时间:2022-02-05
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap