js中陣列的零碎總結
阿新 • • 發佈:2018-12-23
-
js中的陣列與Java中的陣列不同,使用方式也存在很多細微的差別:
- js中不能這樣定義陣列:
var[] a=new var[4];
var[] a=new var[]={1,2,3,4};
- js中正確的定義姿勢:
var[] a=new array[4];
var[] a=[4,1,4,4,5,4];
注意:只能以逗號隔開,不能用空格隔開;
- js中陣列的長度是可變的,相當於Java的ArrayList,所以不需要手動擴容
- js中的陣列可以直接拼接(concat())、擷取部分子陣列(slice())
- js的陣列可以存任意元素,裡面的元素資料型別可以不一致,但在Java中這是致命的
var a=[1,"abc",null,true];
console.log(a);
結果:
[1, "abc", null, true]
- var[] a=new var[4]中的4,是長度,但是可改變
2.js中slice()函式可以有1個引數,也可以有兩個引數,wi一個引數的時候,預設為以這個下標擷取到最後一個元素;為兩個引數時,slice(start,end),end這個座標是不包含自己本身的。比如:
var a=new Array(); a[0]=99;a[1]=1.49; a[2]=29;a[3]=69;a[4]=17; console.log(a.slice(1)); console.log(a.slice(1,3)); console.log(a.slice(1,5));
結果:
[1.49, 29, 69, 17]
[1.49, 29]
[1.49, 29, 69, 17]
注意:slice()操作並不會改變原有陣列的結果,只是使用而不進行改動:
var a=new Array();
a[0]=99;a[1]=1.49;
a[2]=29;a[3]=69;a[4]=17;
console.log(a.slice(1));
console.log(a.slice(1,3));
console.log(a.slice(1,5));
console.log(a);
結果:
[1.49, 29, 69, 17] [1.49, 29] [1.49, 29, 69, 17] [99, 1.49, 29, 69, 17]
3.concat的使用,裡面可以有一個引數,也可以有多個引數,以逗號隔開。
var a=[1,2,3,4,5,6];
var b=[11,22,33,44,55];
var c=[2,22,222,2222,22222];
console.log(a.concat(b));
console.log(a.concat(b,c));
結果:
[1, 2, 3, 4, 5, 6, 11, 22, 33, 44, 55]
[1, 2, 3, 4, 5, 6, 11, 22, 33, 44, 55, 2, 22, 222, 2222, 22222]