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()方法中的参数即可,十分灵活。

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

  • 相关阅读:
    Kubernetes 命令行工具之kubctl
    新一代数据库之Etcd 简介
    算法题 打家劫舍(动态规划)
    算法题 位1的个数
    Class强制类型转换
    算法题 阶乘后的零
    算法题 Excel表列序号
    多数元素
    有序数组两数之和
    一杯果汁和一杯水的故事
  • 原文地址:https://www.cnblogs.com/yanggb/p/11800788.html
Copyright © 2011-2022 走看看