zoukankan      html  css  js  c++  java
  • [面试没有回答上的问题4]常用字符串和数组的操作。

    面试的时候有问到我如果用空格分割一个字符串,其实是一个很简单的问题,但是自己突然忘记了,这里做一个对字符串和数组操作的常用方法的一个简单的复习。

    字符串部分

      1.split();

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

      语法 : stringObject.split(separator, howmany)

      参数 : separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。如果为("")空字符串,就表示字符串中每个字符都会被分割。

         howmany 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会               被分割,不考虑它的长度。

      例子 : 

    <script type="text/javascript">
    
    var str="How are you doing today?"
    
    document.write(str.split(" ") + "<br />")
    document.write(str.split("") + "<br />")
    document.write(str.split(" ",3))
    
    </script>
    

      输出:

    How,are,you,doing,today?
    H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?
    How,are,you
    

      2.slice();

      slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。

      语法 : stringObject.slice(start, end);

      参数 : start 要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个                      字符,以此类推。

           end   紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符                串的尾部开始算起的位置。

      返回值  一个新的字符串。包括字符串 stringObject 从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符。

      需要注意的是, slice 如果第二个参数和第一个参数同时为负数,end 的位置必须在start的位置之后, 不可出现 str.slice(-5,-6),的情况,回返回空字符串

      示例1 ,提取第六位之后的字符。

      

    <script type="text/javascript">
    
    var str="Hello happy world!"
    document.write(str.slice(6))
    
    </script>
    

       输出

    happy world!
    

       示例2, 我们将提取从位置 6 到位置 11 的所有字符:

    <script type="text/javascript">
    
    var str="Hello happy world!"
    document.write(str.slice(6, 11))
    
    </script>
    

       输出

    happy
    

      3.subsring()

      substring() 方法用于提取字符串中介于两个指定下标之间的字符。

       语法 stringObject.substring(start, stop);

      substring() 和 slice()方法大致一样,有两个区别

      1). substring() 不接受参数为负数

      2). 如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参            数。

       4.substr()

          substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。

      语法 : stringObject.substr(start, length);

      参数 : start  必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字                            符,-2 指倒数第二个字符,以此类推。

         length 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。 

      返回值  一个新的字符串,包含从 stringObject 的 start(包括 start 所指的字符) 处开始的 length 个字符。如果没有指定 length,那么返回的字符串包含从 start 到 stringObject 的结尾的字符。

      重要事项:ECMAscript 没有对该方法进行标准化,因此反对使用它。

    数组部分

      1.join()

      join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。

      语法 : arrayObject.join(separator)

      参数 : separator  可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。

      返回值 : 返回一个字符串。该字符串是通过把 arrayObject 的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入 separator 字符串而生成                    的。  

      示例

    <script type="text/javascript">
    
    var arr = new Array(3)
    arr[0] = "George"
    arr[1] = "John"
    arr[2] = "Thomas"
    
    document.write(arr.join("."))
    
    </script>
    

      输出

    George.John.Thomas
    

      2.slice() 

      slice() 方法可从已有的数组中返回选定的元素。

        语法 : arrayObject.slice(start, end)

      参数 : start  必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。

         end  可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这                        个参数是负数,那么它规定的是从数组尾部开始算起的元素。

      返回值   返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。该方法并不会修改数组,而是返回一个子数组。

      和String的slice()方法雷同。

      3.splice()

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

      语法 : arrayObject.splice(index, howmany, item1, ... itemX)

      参数 : index   必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。

         howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。

         item   可选。向数组添加的新项目。

      返回值    包含被删除项目的新数组,如果有的话。如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。

      示例1  我们将创建一个新数组,并向其添加一个元素:

    <script type="text/javascript">
    
    var arr = new Array(6)
    arr[0] = "George"
    arr[1] = "John"
    arr[2] = "Thomas"
    arr[3] = "James"
    arr[4] = "Adrew"
    arr[5] = "Martin"
    
    console.log(arr + "<br />")
    arr.splice(2,0,"William")
    console.log(arr + "<br />")
    
    </script>
    

      输出

    George,John,Thomas,James,Adrew,Martin
    George,John,William,Thomas,James,Adrew,Martin
    

      示例2  在本例中我们将删除位于 index 2 的元素,并添加一个新元素来替代被删除的元素:

    <script type="text/javascript">
    
    var arr = new Array(6)
    arr[0] = "George"
    arr[1] = "John"
    arr[2] = "Thomas"
    arr[3] = "James"
    arr[4] = "Adrew"
    arr[5] = "Martin"
    
    console.log(arr + "<br />")
    arr.splice(2,1,"William")
    console.log(arr)
    
    </script>
    

      输出

    George,John,Thomas,James,Adrew,Martin
    George,John,William,James,Adrew,Martin
    

      示例3  删除第2个位值的元素

    <script type="text/javascript">
    
    var arr = new Array(6)
    arr[0] = "George"
    arr[1] = "John"
    arr[2] = "Thomas"
    arr[3] = "James"
    arr[4] = "Adrew"
    arr[5] = "Martin"
    
    console.log(arr + "<br />")
    arr.splice(2,1)
    console.log(arr)
    
    </script>
    

      输出

    George,John,Thomas,James,Adrew,Martin
    George,Thomas,James,Adrew,Martin
    

      

      上述是一些比较常用的方法的总结,如果需要查看更多关于String对象和Array对象的方法,可以查看  String对象方法 Array对象方法

      

  • 相关阅读:
    清除所有标签的属性
    chm提取
    视频分享
    依赖注入
    python-markdown
    light sdk
    ~
    html标签引入外部html
    微信公众平台自定义菜单
    还在为需要ajax而导入jquery吗? 纯js封装ajax操作
  • 原文地址:https://www.cnblogs.com/xjcjcsy/p/6159980.html
Copyright © 2011-2022 走看看