zoukankan      html  css  js  c++  java
  • JS数组常用方法---9、slice方法

    JS数组常用方法---9、slice方法

    一、总结

    一句话总结:

    slice方法的作用是对数组进行切片,参数有两个可选的,一个是切片的起始位置,一个是切片的终止位置,都可以为负数,slice方法的返回值是得到的切片数组,不影响原数组
    作用:对数组进行切片
    参数:begin(起始索引,可负数)、end(终止索引,可负数),截取的数组包含起点不包含终点
    返回值:得到的切片数组
    是否影响原数组:不影响
    
    let arr=[1,2,3,4,5,6];
    let new_arr1=arr.slice(2,4);
    console.log(new_arr1);// [3, 4]

    1、slice方法截取数组注意?

    a、截取的数组包含起点,但是不包含终点
    b、起点和终点后可以是负数,起点为负数表示从数组的倒数第几个开始截取,终点为负数表示从数组的倒数第几个停止截取

    2、slice方法为什么可以做数组的深度克隆?

    因为slice方法返回截取后的数组,并且不影响原数组

    3、slice方法做深度拷贝的不足之处是什么?

    当数组内部的值是引用类型例如Array、Object时,还是浅拷贝

    二、slice方法

    博客对应课程的视频位置:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>slice方法</title>
     6 </head>
     7 <body>
     8 <!--
     9 
    10 slice方法
    11 作用:对数组进行切片
    12 参数:begin(起始索引,可负数)、end(终止索引,可负数),截取的数组包含起点不包含终点
    13 返回值:得到的切片数组
    14 是否影响原数组:不影响
    15 
    16 slice方法截取数组注意
    17 a、截取的数组包含起点,但是不包含终点
    18 b、起点和终点后可以是负数,起点为负数表示从数组的倒数第几个开始截取,终点为负数表示从数组的倒数第几个停止截取
    19 
    20 slice方法为什么可以做数组的深度克隆
    21 因为slice方法返回截取后的数组,并且不影响原数组
    22 
    23 slice方法做深度拷贝的不足之处是什么
    24 当数组内部的值是引用类型例如Array、Object时,还是浅拷贝
    25 
    26 -->
    27 <script>
    28     //1、slice切割数组
    29     // let arr=[1,2,3,4,5,6];
    30     // let new_arr1=arr.slice(2,4);
    31     // console.log(new_arr1);// [3, 4]
    32     //
    33     // //只指定起点
    34     // let new_arr2=arr.slice(2);
    35     // console.log(new_arr2);// [3, 4, 5, 6]
    36     //
    37     // //起点为负数,则表示从原数组中的倒数第几个元素开始提取
    38     // let new_arr3=arr.slice(-1);
    39     // console.log(new_arr3);// [6]
    40     // let new_arr4=arr.slice(-3);
    41     // console.log(new_arr4);// [4, 5, 6]
    42     //
    43     // //终点为负数,则它表示在原数组中的倒数第几个元素结束抽取
    44     // let new_arr5=arr.slice(1,-1);
    45     // console.log(new_arr5);// [2, 3, 4, 5]
    46     //
    47     //
    48     // //起点和终点都是负数
    49     // let new_arr6=arr.slice(-3,-1);
    50     // console.log(new_arr6);// [4, 5]
    51 
    52     //2、slice方法做数组的深度克隆
    53     // let arr1=[1,2,3];
    54     // let arr2=arr1.slice();//深拷贝
    55     // arr2.unshift(4,5,6);
    56     // console.log(arr2);
    57     // console.log(arr1);
    58 
    59 
    60     //slice做深度拷贝的不足
    61     //当数组内部的值是引用类型例如Array、Object时,还是浅拷贝
    62     // let arr1=[1,2,3,{name:'悟空',age:13}];
    63     // let arr2=arr1.slice();//深拷贝
    64     // arr2.push(4,5,6);
    65     // console.log(arr2);
    66     // console.log(arr1);
    67     //
    68     // arr2[3]['name']='悟净';
    69     // console.log(arr2);
    70     // console.log(arr1);
    71 
    72 </script>
    73 </body>
    74 </html>
     
  • 相关阅读:
    shell 文件夹总大小 du -sh 文件夹
    java dump
    图片上传-下载-删除等图片管理的若干经验总结2
    android开发之shape详解
    图片上传-下载-删除等图片管理的若干经验总结
    图片上传-下载-删除等图片管理的若干经验总结
    一个奇怪的Java集合问题
    小米开源文件管理器MiCodeFileExplorer-源码研究(0)-初步研究
    小米开源文件管理器MiCodeFileExplorer-源码研究(0)-初步研究
    APK文件浅析-Android
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/12677539.html
Copyright © 2011-2022 走看看