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>