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

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

    arrayObject.slice(start, end)

    参数说明

    start 必需(否则没有意义)。规定从何处开始选取,即提取起始处的索引(从0开始),从该索引开始提取原数组元素。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1指最后一个元素,-2指倒数第二个元素,以此类推。如果没有指定该参数,则从索引0开始。如果该参数大于原数组的长度,则会返回空数组。
    end 可选。规定从何处结束选取,该参数是数组片断结束处的数组下标,即提取终止处的索引(从0开始),在该索引处结束提取原数组元素,该方法会提取原数组中索引从start到end的所有元素(包含start,但不包含end)。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。如果没有指定该参数,那么切分的数组包含从start到数组结束的所有元素。如果该参数大于数组的长度,也会一直提取到原数组末尾。

    返回值

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

    注意事项

    这个方法并不会修改原来的数组,而是返回一个浅复制了原数组中的元素的一个新数组。浅复制的意思就是说,如果向两个数组任一中使用Array.push()添加了新元素或使用Array.splice()方法移除了元素,另一个是不会受到影响的;但是如果修改了数组中的元素,则情况会因为数组中的元素类型不同而有所不同。

    1.如果该元素是个对象引用 (不是实际的对象),slice()方法会拷贝这个对象的引用到新的数组里。也就是说,两个数组中的这两个元素都引用了同一个对象,如果被引用的对象发生改变,则新的和原来的数组中的这个元素也会同步发生改变。

    2.对于字符串、数字及布尔值来说(不是String、Number或者Boolean对象),slice()方法会拷贝这些值到新的数组里。在别的数组里修改这些字符串或数字或是布尔值,将不会影响另一个数组。

    简单示例1

    var arr = ["yanggb1", "yanggb2", "yanggb3"];
    var arr1 = arr.slice(1, 2); // ["yanggb2"]

    简单示例2

    var arr = ["yanggb1", "yanggb2", "yanggb3"];
    var arr1 = arr.slice(1); // ["yanggb2", "yanggb3"]

    巧妙用处

    这个方法在截断需要的格式化日期的场景中十分好用,我们来感受一下。

    var today = '2019-05-20';
    // 我想要yyyy-MM-dd的形式
    var today1 = today.split('-').slice(0).join('-'); // 2019-05-20
    // 我想要MM-dd的形式
    var today1 = today.split('-').slice(1).join('-'); // 05-20
    // 我想要dd的形式
    var today2 = today.split('-').slice(2).join('-'); // 20

    如果要切换不同的日期形式,只需要修改slice()方法中的参数即可,十分灵活。

    "其实生活在井里也挺好的,就是偶尔,会觉得世界很空,生活很咸。"

  • 相关阅读:
    谈谈站桩
    mysql开发之---使用游标双层嵌套对总表进行拆分为帖子表和回复表
    【Xcode学C-3】if等流程控制、函数的介绍说明标记分组、#include以及LLVM
    hdu5303(2015多校2)--Delicious Apples(贪心+枚举)
    Hadoop最大值的算法中出现的错误(strToDouble)
    利用管道进行通信
    HDU 5308 规律+模拟
    深入浅出理解排序算法之-选择排序
    Jscript 随记
    SharedPreferences具体解释(一)——基础知识
  • 原文地址:https://www.cnblogs.com/yanggb/p/11800788.html
Copyright © 2011-2022 走看看