zoukankan      html  css  js  c++  java
  • javascript中的slice()方法

    JavaScript中的Array对象提供了一个slice()方法,用于从已有的数组中返回选定的元素。

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

    该函数会返回一个新的数组(非变异方法,不改变源数组),包含从start到end(不包含该元素)的arrayObject中的元素。因此要特别注意,如果是想要删除数组中的一段元素,应该使用Array.splice()方法。

    var arr = ['yanggb', 'yanggb1', 'yanggb2'];
    
    console.log(arr.slice(1)); // ['yanggb1', 'yanggb2']
    console.log(arr.slice(2)); // ['yanggb2']
    console.log(arr.slice(1, 2)); // ['yanggb1']
    
    console.log(arr.slice(-1)); // ['yanggb2'] console.log(arr.slice(-2)); // ['yanggb1', 'yanggb2'] console.log(arr.slice(-2, -1)); // ['yanggb1'] console.log(arr); // ['yanggb', 'yanggb1', 'yanggb2']

    注意到了吗,在多次对源数组进行slice()操作,在最后源数组并没有发生任何的改变。

    另外,JavaScript中的String对象也提供了slice()方法,用于提取字符串的某个部分,并以新的字符串返回被提取的部分,使用起来和Array对象的slice()方法大同小异。

    stringObject.slice(start,end)
    参数描述
    start 要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。
    end 紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。

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

    String对象的方法slice()、substring()和substr() (不建议使用)都可返回字符串的指定部分。slice() 比 substring() 要灵活一些,因为它允许使用负数作为参数。slice() 与 substr() 有所不同,因为它用两个字符的位置来指定子串,而substr() 则用字符位置和长度来指定子串。

    var str = 'yanggb';
    
    console.log(str.slice(1)); // 'anggb'
    console.log(str.slice(2)); // 'nggb'
    console.log(str.slice(1, 2)); // 'a'
    
    console.log(str.slice(-1)); // 'b'
    console.log(str.slice(-2)); // 'g'
    console.log(str.slice(-2, -1)); // 'g'
    
    console.log(str); // 'yanggb'

    同样注意的是,在多次对源字符串进行slice()操作,在最后源字符串并没有发生任何的改变。这也与String对象本身就是被设计为不可变性的特性有一点关系。

    "那个总是对你和颜悦色的人,也可能是伺机而动的坏人。"

  • 相关阅读:
    sitemap怎么制作才适合蜘蛛抓取?
    网站高并发优化性能调优总结
    圆柱模板行业B2B站点打造MIP推送+熊掌号推送+历史普通推送插件
    a href="javascript:void(0)" 是什么意思?加不加上有什么区别?
    <a href="#" onclick="history.back();"></a>这样写为什么是对的? -(转)
    form 表单 enctype 属性-(转自w3c)
    关于submit与document.form1.submit();这2个提交的区别
    zf-表单填写以及相关业务流程
    zf-关于把某个地址的svn项目移动到另一个上面的步骤
    zf-关于即将过期提示字符串的修改
  • 原文地址:https://www.cnblogs.com/yanggb/p/12683270.html
Copyright © 2011-2022 走看看