zoukankan      html  css  js  c++  java
  • JS的splice()方法和slice()方法

    在w3c school中描述如下:

    定义和用法
    splice() 方法用于插入、删除或替换数组的元素。
    语法
    arrayObject.splice(index,howmany,element1,.....,elementX)
    参数 描述
    index
    必需。规定从何处添加/删除元素。
    该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
    howmany
    必需。规定应该删除多少元素。必须是数字,但可以是 "0"。
    如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
    element1 可选。规定要添加到数组的新元素。从 index 所指的下标处开始插入。
    elementX 可选。可向数组添加若干元素。
    返回值
    如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。
    说明
    splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。
    提示和注释
    注释:请注意,splice() 方法与 slice() 方法的作用是不同的,splice() 方法会直接对数组进行修改。

     曾看过一个js数组去重的方法,与splice方法有关,可作为参考,如下:

     写道
    1:
    Array.prototype.distinct = function(){
    for(var i = 0;i<this.length;i++){
    var n = this[i ];
    this.splice(i,1,null);
    if(this.indexOf(n) < 0){
    this.splice(i,1,n);//不存在重复
    }else{
    this.splice(i,1);//存在重复
    }
    }
    return this;
    };

    2:
    Array.prototype.distinct = function(){
    var self = this;
    var _a = this.concat().sort();
    _a.sort(function(a,b){
    if(a == b){
    var n = self.indexOf(a);
    self.splice(n,1);
    }
    });
    return self;
    };

     

    而关于slice()方法,则有如下说明

    定义和用法
    slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
    语法
    stringObject.slice(start,end)
    参数 描述
    start 要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。
    end 紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。
    返回值
    一个新的字符串。包括字符串 stringObject 从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符。
    说明
    String 对象的方法 slice()、substring() 和 substr() (不建议使用)都可返回字符串的指定部分。slice() 比 substring() 要灵活一些,因为它允许使用负数作为参数。slice() 与 substr() 有所不同,因为它用两个字符的位置来指定子串,而 substr() 则用字符位置和长度来指定子串。
    还要注意的是,String.slice() 与 Array.slice() 相似。
  • 相关阅读:
    P5049 旅行(数据加强版)(基环树)
    P5024 保卫王国(动态dp/整体dp/倍增dp)
    CF891C Envy(离线/在线+可撤销并查集/并查集/LCT)
    CF1217题解
    CF1215题解
    浅谈bitset
    CF1214题解
    CF1213F Unstable String Sort(差分)
    C++创建和使用动态链接库
    交叉编译openssl1.1.1a
  • 原文地址:https://www.cnblogs.com/langtianya/p/4877476.html
Copyright © 2011-2022 走看看