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>

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM