1. 程式人生 > >js中陣列的零碎總結

js中陣列的零碎總結

  1. 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]