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