当前位置: 首页 > Web前端 > HTML5

《深入理解ES6》笔记——改进数组函数(10)

时间:2023-04-05 22:42:02 HTML5

ES5提供了非常强大的数组,但是ES6继续改进了一些,主要是增加了新的数组方法,所以本章的知识很少。创建数组ES5中创建数组的方式:数组字面量,new一个数组。constarr1=[]//数组字面量constarr2=newArray()//new构造ES6创建数组:Array.of(),Array.from()Array.of()ES5新建一个数组,会有成为一个混乱的局面。当new为数字时,生成一个以数字为长度的数组,当new为字符串时,生成一个以字符串为元素的数组。consta=newArray(2)constb=newArray("2")console.log(a,b)//[undefined,undefined]["2"]这样newArray的行为是不可预知的,Array.of()的出现就是为了解决这种情况。constc=Array.of(2)constd=Array.of("2")console.log(c,d)//[2]["2"]从Array.of()创建的数组传入参数用作数组的元素,而不是数组的长度,因此避免了使用中的歧义。Array.from()如果Array.of()是创建一个新的数组,而Array.from()是将类数组转换成数组。以下示例是关于将参数转换为数组的。arguments是一个类数组对象,代表当前函数的所有参数。如果函数没有参数,则arguments将为空。functiontest(a,b){letarr=Array.from(arguments)console.log(arr)}test(1,2)//[1,2]映射转换:Array.from(arg1,arg2),我们你可以给这个方法提供2个参数,第二个参数作为第一个参数的转换。看一个简单的例子你就明白了。functiontest(a,b){letarr=Array.from(arguments,value=>value+2)console.log(arr)}test(1,2)//[3,4]Array.from也可以set第三个参数指定这个。Array.from()转换可迭代对象:这种用法只需要一个例子,数组去重。functiontest(){returnArray.from(newSet(...arguments))}consts=test([1,"2",3,3,"2"])console.log(s)//[1,"2",3]向数组添加新方法ES6为数组添加了几个新方法:find()、findIndex()、fill()、copyWithin()。1.find():传入一个回调函数,找到数组中第一个符合当前搜索规则的元素,返回,并终止搜索。constarr=[1,"2",3,3,"2"]console.log(arr.find(n=>typeofn==="number"))//12.findIndex():传入一个回调函数,找到数组中第一个符合当前搜索规则的元素,返回其下标,结束搜索。constarr=[1,"2",3,3,"2"]console.log(arr.findIndex(n=>typeofn==="number"))//03,fill():使用新元素要替换数组中的元素,可以指定替换下标范围。arr.fill(value,start,end)testconstarr=[1,2,3]console.log(arr.fill(4))//[4,4,4]不指定起止,替换allconstarr1=[1,2,3]console.log(arr1.fill(4,1))//[1,4,4]指定起始位置,从起始位置开始全部替换constarr2=[1,2,3]console.log(arr2.fill(4,0,2))//[4,4,3]指定开始和结束位置,替换当前范围内的元素4,copyWithin():select数组的一个下标,从该位置开始复制数组元素,默认从0开始复制。您还可以指定要复制的元素范围。arr.copyWithin(target,start,end)testconstarr=[1,2,3,4,5]console.log(arr.copyWithin(3))//[1,2,3,1,2]开始从下标为3的元素开始,复制数组,所以4,5被1,2代替constarr1=[1,2,3,4,5]console.log(arr1.copyWithin(3,1))//[1,2,3,2,3]从下标为3的元素开始,复制数组,指定第一个复制的元素下标为1,所以4,5替换为2,3constarr2=[1,2,3,4,5]console.log(arr2.copyWithin(3,1,2))//[1,2,3,2,5]从下标为3的元素开始,复制数组,指定该副本的第一个元素的下标为1,结束位置为2,所以4被2代替。其他新方法还包括构造型数组和数组缓冲区的概念。具体可以参考书中的教程。综上所述,掌握数组的新创建方式和数组的几种新方法就足够了。普通人不需要太详细地了解构造型数组和数组缓冲区。=>返回文章目录