js slice(),splice(),substring(),substr()的区别

1. slice(start,end):方法可从已有数组中返回选定的元素,返回一个新数组,包含从索引start开始到end(不包含end索引对应的元素)的数组元素。start,end均为索引

(1)注意:该方法不会改变原数组,而是返回一个子数组,如果想删除数组中的一段元素,应该使用Array.splice()方法。

如:

        var a=[1,2,3,4]

        var b=a.slice(1,3)

        console.log(b) //[2,3]

        console.log(a) //[1,2,3,4]

(2)注意:slice(start,end)如果end输入的值大于数组的长度,会把start后面的所有元素截取,这个一般用于截取接口返回来的数,又没法判断接口返回的数组长度是不是够的情况下截取

如:

          var a=[1,2,3,4]

          var b=a.slice(1,6)

          console.log(b) //[2,3,4]

(3)注意slice还能截取字符串,不会改变原字符串,并且slice(start,end)如果end输入的值大于数组的长度,会把start后面的所有字符都截取

如:                                            如:


      var a='abcd'                               var c='abcd'

      var b=a.slice(1,3)                       var d=a.slice(1,6) 

      console.log(b) //bc                      console.log(b) //bcd

      console.log(a) //abcd

(4)注意:slice(start,end),如果输入的start,end在数组中找不到对应的项,会返回一个空数组, 如果是在字符串中,则返回空

如:

           var a=[1,2,3,4]

          var b=a.slice(6,7)

          console.log(b) //[]


2.splice():该方法向或者从数组中添加或者删除项目,返回被删除的项目。splice(index,howmany,item1,...itemX)

 index参数:必须,整数,规定添加或者删除的位置,使用负数,从数组尾部规定位置。

   howmany参数:必须,要删除的数量,如果为0,则不删除项目。

   tem1,...itemX参数:可选,向数组添加的新项目。

( 1)注意,该方法会改变原数组

如:

           var a=[1,2,3,4]

           var b=a.splice(1,3)

           console.log(b) //[2,3,4]

           console.log(a) //[1]

(2)注意:splice(index,howmany),如果howmany大于数组的长度,会删除从索引开始到数组的最后一个

          var a=[1,2,3,4]

          var b=a.splice(2,6)

          console.log(b) //[3,4]

          console.log(a) //[1,2]

(3)注意:splice(start,end)也一样,如果输入的start,end在数组中找不到对应的项,会返回一个空数组

如:

                        var a=[1,2,3,4]

                       var b=a.splice(6,7)

                       console.log(b) //[]

(4)注意:splice()可以删除指定项,并在该位置添加新元素

                var a=[1,2,3,4]

                     var b=a.splice(1,1,'张三','李四')

                     console.log(b) //2

                     console.log(a) //[1, "张三", "李四", 3, 4]

(5)注意:splice()不能用来截取字符串,用了报错

3.substring(start,end)是用于截取字符串,包含从索引start开始到end(不包含end索引对应的元素)的字符元素。不改变原字符串;start,end均为索引


              如

                var a='abcd'

               var b=a.substring(1,2)

               console.log(b) //b

               console.log(a) //abcd

(1)注意:substring(start,end),end的数字大于字符串的长度,将截取start到该字符串最后的所有字符

                   如:

                       var a='abcd'

                       var b=a.substring(1,6)

                        console.log(b) //bcd


(2)注意:substring(start,end)找不到对应的项,则会返回一个空字符串

如:

                 var a='abcd'

                  var b=a.substring(6,7)

                  console.log(b) //空,(不是null,是' ')

(3)注意:不能用来截取数组

4.substr(index,length)第一个是索引,第二个是长度,如果输入的长度大于字符的长度,将截取开始索引到字符串最后的字符,如果输入的substr(index,length)在字符串找不到对应的项,则返回空字符

 (1)注意:substr第二个参数是长度,不是索引;而substing(start,end)的两个参数都是索引

          如:

                        var a='abcd'

                        var b=a.substr(1,2)

                        console.log(b) //bc

(2)注意:如果输入的长度大于字符的长度,将截取开始索引到字符串最后的字符;如果输入的substr(index,length)在字符串找不到对应的项,则返回空字符

             如:

         var a='abcd'                          var a='abcd'

         var b=a.substr(1,6)               var b=a.substr(6,2)

         console.log(b) //bcd              console.log(b) //空,(不是null,是' ')




落魄前端-小陈
0
0
0
评论
浏览
收藏