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

  • 相关阅读:
    彻底弄懂GMT、UTC、时区和夏令时
    揭秘webpack loader
    揭秘webpack plugin
    封装axios
    webpack优化之玩转代码分割和公共代码提取
    node.js操作数据库之MongoDB+mongoose篇
    GitHub项目徽标
    Java中容易遗漏的小知识点( 一 )(为了和小白一样马上要考试的兄弟准备的,希望小白和大家高过不挂)
    QNX Message Passing,一个让人头秃的 IPC BUG
    【百面】02_模型评估
  • 原文地址:https://www.cnblogs.com/ouy-tqq/p/6143150.html
Copyright © 2011-2022 走看看