美文网首页
JS数组终极神器Array.splice

JS数组终极神器Array.splice

作者: 夜舞暗澜_3ea2 | 来源:发表于2018-06-14 17:02 被阅读0次

    语法:

    array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
    

    arr.splice其实是个修改数组的方法。设定从哪里开始改,抹掉的范围,加入的元素。可以发现,配合arr.length,这个方法几乎涵盖了所有数组会有的操作。

    参数:

    • start
      指定修改的开始位置(从0计数)。如果超出了数组的长度,则从数组末尾开始添加内容;如果是负值,则表示从数组末位开始的第几位(从-1计数);若只使用start参数而不使用deleteCount、item,如:array.splice(start) ,表示删除[start,end]的元素。
    • deleteCount 可选
      整数,表示要移除的数组元素的个数。如果 deleteCount 是 0,则不移除元素。这种情况下,至少应添加一个新元素。如果 deleteCount 大于start 之后的元素的总数,则从 start 后面的元素都将被删除(含第 start 位)。
      如果deleteCount被省略,则其相当于(arr.length - start)。
    • item1, item2, ... 可选
      要添加进数组的元素,从start 位置开始。如果不指定,则 splice() 将只删除数组元素。
      splice方法使用deleteCount参数来控制是删除还是添加:
      start参数是必须的,表示开始的位置(从0计数),如:start=0从第一个开始;start>= array.length-1表示从最后一个开始。
      1. 从start位置开始删除[start,end]的元素。
      array.splice(start)
      2. 从start位置开始删除[start,Count]的元素。
      array.splice(start, deleteCount)
      3. 从start位置开始添加item1, item2, ...元素。
      array.splice(start, 0, item1, item2, ...)

    用splice方法模拟数组方法:

    console.log('var arr = [1, 2, 3]');
    // ------------------
    Array.prototype.splicePush = function (...values) {
      this.splice(this.length, 0, ...values);
      return this.length;
    }
    var arr = [1, 2, 3];
    console.log('arr.splicePush(10, 11, 12) = ' + arr.splicePush(10, 11, 12) + '; arr = [' + arr + ']');
    // ------------------
    Array.prototype.splicePop = function () {
      var item = this.splice(arr.length-1, 1)[0];
      return item;
    }
    var arr = [1, 2, 3];
    console.log('arr.splicePop() = ' + arr.splicePop() + '; arr = [' + arr + ']');
    // ------------------
    Array.prototype.spliceShift = function () {
      var item = this.splice(0, 1)[0];
      return item;
    }
    var arr = [1, 2, 3];
    console.log('arr.spliceShift() = ' + arr.spliceShift() + '; arr = [' + arr + ']');
    // ------------------
    Array.prototype.spliceUnshift = function (...values) {
      values.splice(values.length, 0, ...this);
      this.splice(0, this.length, ...values);
      return values.length;
    }
    var arr = [1, 2, 3]
    console.log('arr.spliceUnshift(10, 11, 12) = ' + arr.spliceUnshift(10, 11, 12) + '; arr = [' + arr + ']')
    

    进不去MDN的看这里=>Array.prototype.splice()--MDN

    相关文章

      网友评论

          本文标题:JS数组终极神器Array.splice

          本文链接:https://www.haomeiwen.com/subject/kjmyeftx.html