比较冷门的数组方法-fill及可能不兼容时的如何自己写底层实现

Array.prototype.fill是es6新添加的语法

该方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素

该方法会改变原数组

example1

let arr = [1,2,3,4]

arr.fill(5) // console.log(arr)  [5,5,5,5]

第一个参数value是用来填充数组元素的值; 第二个参数和第三个参数可以不填

arr.fill(5,1) //console.log(arr)  [1,5,5,5]

第二个参数是起始索引,默认是0;

arr.fill(5,1,3) //console.log(arr) [1,5,5,4]

第三个参数是结束索引,默认是this.length

返回值是修改后的数组。

tip:

1.如果第二个参数和第三个参数是负数,会被计算成this.length + 第二个参数和this.length + 第三个参数。如果计算出来的值,第二个参数的值大于第三个,将不作任何处理

以上就是es6语法中fill的内容

 

接下来讲的是该方法不兼容时,如何自己写一个底层

//不兼容时的兼容方法
Array.prototype.fill = function(number,start=0,end=this.length){
      if(start<0){ //如果是负数 值默认为length+start的值
        start = this.length+start
      }
      if(end<0){ //如果是负数 值默认为length+end的值
        end = this.length + end
      }
      for(let i=start;i

 

你可能感兴趣的:(JavaScript,js,数组方法,es6)