ES6 Array(有时间再补)

2017-08-15  本文已影响0人  可爱的木头

Array.prototype.copyWithin(target,start=0,end = this.length)
1.target(必须):从该位置开始替换数据
2.start(可选):从该位置开始读取数据,默认为0.如果为负值,表示倒数。
3.end(可选):到该位置前停止读取数据,默认等于数组长度。如果为负值,表示倒数

[1,2,3,4,5].copyWithin(0,3,4)
//[4,2,3,4,5]
[].copyWithin.call({length: 5, 3: 1}, 0, 3)
//{0: 1, 3: 1, length: 5}

//总结:就是用call的方法将{length:5,3:1}对象调用[]数组中的copyWith的方法从0开始替换 读取从索引值3开始数据进行替换  因为索引3为1 4和5都不存在 所以最终的结果为{0: 1, 3: 1, length: 5}
(function(objectLikeArray, targetIn,startIndex){
var target= targetIn;
for(var i= startIndex;i<objectLikeArray.length;i++){
    //if(objectLikeArray.hasOwnProperty(i)){
    if(i in objectLikeArray){
      objectLikeArray[target]=objectLikeArray[i];
    }else{
      delete objectLikeArray[target]
    }
    target++;
}
return objectLikeArray;
}({length: 5, 3: 1},0,3));
上一篇下一篇

猜你喜欢

热点阅读