• 关于splice()方法,slice() 、split()方法讲解,reverse()方法、replace()方法


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

    语法

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

    返回值

    返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。

    说明

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

    提示和注释

    注释:您可使用负值从数组的尾部选取元素。

    注释:如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素。

     

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

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

    语法

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

    返回值

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

    说明

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

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

    所有主流浏览器都支持 splice() 方法。

    注释:请注意,splice() 方法与 slice() 方法的作用是不同的,splice() 方法会直接对数组进行修改。

    例子 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"
    
    document.write(arr + "<br />")
    arr.splice(2,0,"William")
    document.write(arr + "<br />")
    
    </script>

    输出:

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

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

    语法

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

    返回值

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

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

    提示和注释

    注释:如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。

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

    实例

    例子 1

    在本例中,我们将按照不同的方式来分割字符串:

    <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

    4、reverse() 方法用于颠倒数组中元素的顺序。

    语法

    arrayObject.reverse()

    提示和注释

    注释:该方法会改变原来的数组,而不会创建新的数组。

    实例

    在本例中,我们将创建一个数组,然后颠倒其元素的顺序:

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

    输出:

    George,John,Thomas
    Thomas,John,George

    5、replace() 方法

    用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

    语法

    stringObject.replace(regexp/substr,replacement)
    参数描述
    regexp/substr

    必需。规定子字符串或要替换的模式的 RegExp 对象。

    请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。

    replacement 必需。一个字符串值。规定了替换文本或生成替换文本的函数。

    返回值

    一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。

    说明

    字符串 stringObject 的 replace() 方法执行的是查找并替换的操作。它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用 replacement 来替换这些子串。如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。

    replacement 可以是字符串,也可以是函数。如果它是字符串,那么每个匹配都将由字符串替换。但是 replacement 中的 $ 字符具有特定的含义。如下表所示,它说明从模式匹配得到的字符串将用于替换。

    字符替换文本
    $1、$2、...、$99 与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。
    $& 与 regexp 相匹配的子串。
    $` 位于匹配子串左侧的文本。
    $' 位于匹配子串右侧的文本。
    $$ 直接量符号。

    注意:ECMAScript v3 规定,replace() 方法的参数 replacement 可以是函数而不是字符串。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数是与模式中的子表达式匹配的字符串,可以有 0 个或多个这样的参数。接下来的参数是一个整数,声明了匹配在 stringObject 中出现的位置。最后一个参数是 stringObject 本身。

    实例

    例子 1

    在本例中,我们将使用 "W3School" 替换字符串中的 "Microsoft":

    <script type="text/javascript">
    
    var str="Visit Microsoft!"
    document.write(str.replace(/Microsoft/, "W3School"))
    
    </script>
    

    输出:

    Visit W3School!

    例子 2

    在本例中,我们将执行一次全局替换,每当 "Microsoft" 被找到,它就被替换为 "W3School":

    <script type="text/javascript">
    
    var str="Welcome to Microsoft! "
    str=str + "We are proud to announce that Microsoft has "
    str=str + "one of the largest Web Developers sites in the world."
    
    document.write(str.replace(/Microsoft/g, "W3School"))
    
    </script>
    

    输出:

    Welcome to W3School! We are proud to announce that W3School
    has one of the largest Web Developers sites in the world.
    

    例子 3

    您可以使用本例提供的代码来确保匹配字符串大写字符的正确:

    text = "javascript Tutorial";
    text.replace(/javascript/i, "JavaScript");
    

    例子 4

    在本例中,我们将把 "Doe, John" 转换为 "John Doe" 的形式:

    name = "Doe, John";
    name.replace(/(w+)s*, s*(w+)/, "$2 $1");
    

    例子 5

    在本例中,我们将把所有的花引号替换为直引号:

    name = '"a", "b"';
    name.replace(/"([^"]*)"/g, "'$1'");
    

    例子 6

    在本例中,我们将把字符串中所有单词的首字母都转换为大写:

    name = 'aaa bbb ccc';
    uw=name.replace(/w+/g, function(word){
      return word.substring(0,1).toUpperCase()+word.substring(1);}
      );
  • 相关阅读:
    BZOJ 5358 口算训练/HDU 6287(可持久化线段树)
    HDU 4288 Coder
    FZU 2289 项链
    jQuery
    HTML5存储技术Storage
    JS第三部分--BOM浏览器对象模型
    JS第二部分--DOM文档对象模型
    JS第一部分--ECMAScript5.0标准语法 (JS基础语法)
    python离线安装包
    DB2不记日志插入,python迭代器操作xlrd,python操作xlwt
  • 原文地址:https://www.cnblogs.com/chenhuichao/p/7832670.html
Copyright © 2020-2023  润新知