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用法相似。

  • 相关阅读:
    用c#写一个json的万能解析器
    使用Xpath从网页中获取数据
    pdf文件流生成pdf文件
    AES加密和Base64混合加密
    参数请求post, get , delete中的基本使用(2)
    参数请求post, get , delete中的基本使用(1)
    java多线程打印ABC
    我的开发工具
    MyBatis的#与$
    struts1
  • 原文地址:https://www.cnblogs.com/ouy-tqq/p/6143150.html
Copyright © 2011-2022 走看看