ES6-之新增优化数组方法

数组优化

新增Array.of()  、 Array.from()

Array.of()总会创建一个包含所有参数的数组,用来解决通过Array构造函数来创建数据的怪异行为, new Array(n)传一个参数的时候,如果参数类型为number,则该数组的length替换为n,如果是其他类型则会创建一个长度为1的数组n,而Array.of(n),无论参数是何种类型,都只创建length为1,值为n的数组

let a = new Array(9)  //[empty * 9]

let b = Array.of(9)  //[9]

Array.from()能够将类数组转化为数组,可以处理类数组对象和可迭代对象,可接收两个参数,第一个是类数组,第二个是一个映射函数,还有第三个函数,表示映射函数this的值

function translate(){
  let arr = Array.from(arguments, value => value + 1)
  return arr;
}
translate(1,2,3,4)   // [2, 3, 4, 5]

find()和findeIndex()

与ES5中添加的IndexOf()方法的区别在于,indexOf()查找的是特定的值,而find()查找的是符合某个条件的值,findIndex()查找的是符合条件的值的索引,接收两个参数,第一个是回调函数,第二个是回调函数中this的值

let arr = [20, 80, 10, 23,78,79]

arr.find(value => value > 70)   // 80
arr.findIndex(value => value > 70)  //1
arr.findIndex(value => value > 80)  //-1

fill()

fill(value, start, end)  用一个固定值替换数组中的元素,接收三个参数,第一个是用于填充的值,第二个参数是开始填充替换的位置,第三个参数是停止填充的位置,填充不包括此项,填充中止位不会大于数组长度

let arr = ['bag','big','beg','pig']

arr.fill('hello',2,3)  // ["bag", "big", "hello", "pig"]

new Array(2).fill('hello',0,10)  //["hello", "hello"]

copyWithin()

copyWithin(target,start,end) ,拷贝数组中指定位置的元素到另一指定位置处,接收三个参数,第一个参数是要被替换的目标索引,第二个参数是数组中被拷贝的起始索引,第三个参数是数组中被拷贝的中止索引,该方法不会改变原始数组的长度

let arr = ['aa','bb','cc','dd','ee']
//将前三个元素替换后第四个即之后的元素
arr.copyWithin(3,0,3)  // ["aa", "bb", "cc", "aa", "bb"]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值