微信扫一扫打赏支持

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>

 

 

 
posted @ 2020-04-11 06:07  范仁义  阅读(1931)  评论(0编辑  收藏  举报