JavaScript中易混淆的slice,splice和split方法

slice

  • slice() 方法可从已有的数组中返回选定的元素,主要用于截取数组,并返回截取到的新数组。
  • 请注意,该方法并不会修改数组,而是返回一个子数组。

    语法

    arrayObject.slice(start,end)
    参数 描述
    start 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
    end 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
  • (自我理解:选取从开始下标到结束小标位置,返回新数组)
  • 例:

    var arr = ['2016','2017','2018'];

    arr.slice(1,2); => 2017,2018

splice

splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。 

注释:该方法会改变原始数组

语法

arrayObject.splice(index,howmany,item1,.....,itemX)
参数 描述
index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, ..., itemX 可选。向数组添加的新项目。

返回值

类型 描述
Array 包含被删除项目的新数组,如果有的话。

splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。

如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。

例子:

     新增

    var arr = ['2016','2017','2018'];

    arr.splice(1,0,'2019'); => 2016,2017,2019,2018

     删除

    var arr = ['2016','2017','2018'];

    arr.splice(1,1,'2019'); => 2016,2019,2018

split

split() 方法用于把一个字符串分割成字符串数组。

语法

stringObject.split(separator,howmany)
参数 描述
separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。
howmany 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

返回值

一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 stringObject 分割成子串创建的。返回的数组中的字串不包括 separator 自身。

但是,如果 separator 是包含子表达式的正则表达式,那么返回的数组中包括与这些子表达式匹配的字串(但不包括与整个正则表达式匹配的文本)。

注释:String.split() 执行的操作与 Array.join 执行的操作是相反的。

再举一个简单的例子

var a="0123456";

var b=a.split("",3); //b=["0","1","2"]

猜你喜欢

转载自my.oschina.net/u/3786097/blog/1625238