zoukankan      html  css  js  c++  java
  • 对于数组(字符串)slice方法的总结

    数组(字符串)使用slice方法的目的就是截取目标数组(字符串),通俗的来讲就是截取想要的。网上有很多slice方法的实例加以说明,在此主要是从特殊到一般对此方法进行了总结。

    先说总结的方法,再看下面的例子进行理解。

    假设已知一个数组长度为len,则参数的有效范围为[-len,len-1],-len和0为第一个元素的下标,-1和len-1表示最后一个元素的下标。slice()总共有两个参数,不填参数返回所有元素;若只填一个参数x,则x为起始元素的下标(起始元素一定会被截取),返回x之后的所有元素为新的数组(包括x),若x>=len,则返回空数组,即什么也没截取;若x<=-len||x=0,则截取全部;若填写两个参数x,y(x为起始元素下标值,y为结束元素下标值。注:不截取下标为y的元素);先列出能截取到元素的取值情况(有效范围内):x,y同号时(此处把0归为正),x<y;x,y异号时,x为正,y为负,则|x|+|y|<len;x为负,y为正,则|x|+|y|>len;有效范围外,x<len,y>-len。

    以上包括所有情况,总的原则就是保证下标为y的元素要在x的后面才可截取。看下面例子加强理解

    1、不填参数

    1 var arr = new Array("a","b","c","d");
    2 console.log(arr.slice());//["a","b","c","d"]相当于截取全部

    2、一个参数

    1 var arr = new Array("a","b","c","d");
    2 console.log(arr.slice(2));//["c","d"];
    3 console.log(arr.slice(-2));//["c","d"];
    4 console.log(arr.slice(-5));//["a","b","c","d"]超出范围
    5 console.log(arr.slice(5));//[]超出范围

    3、两个参数

    1 var arr = new Array("a","b","c","d");//len = 4 有效[-4,3]
    2 console.log(arr.slice(1,3));//["b","c"]包括b不包括d x<y
    3 console.log(arr.slice(-3,-2));//["b"] x<y
    4 console.log(arr.slice(0,-2));//["a","b"] |x|+|y|<4
    5 console.log(arr.slice(-3,2));//["b"] |x|+|y|>4
    6 console.log(arr.slice(4,2));//[] x>4 一定为空
    7 console.log(arr.slice(-3,0));//[] y=0 一定为空
    8 console.log(arr.slice(-3,-4));//[] y<=-4 一定为空
    9 console.log(arr.slice(1,100));//["b","c","d"]y>len-1能取到最后一个元素

    字符串与数组slice用法相似。

  • 相关阅读:
    如何进行简单画图
    缓冲技术
    信号量机制
    进程通信
    中断技术
    操作系统原理-图书主题
    供多处理器系统中的高速缓存同步中使用的转发状态
    js几种escape()解码与unescape()编码
    MySQL 元数据
    MySQL 复制表
  • 原文地址:https://www.cnblogs.com/ouy-tqq/p/6143150.html
Copyright © 2011-2022 走看看