(1)数组的定义
数组(array)是按次序排列的一组值。每个值的位置都有编号(
从0开始),整个数组用方括号表示。
var arr = ['a', 'b', 'c'];
上面代码中的a、b、c就构成一个数组,两端的方括号是数组的标
志。a是0号位置,b是1号位置,c是2号位置。
除了在定义时赋值,数组也可以先定义后赋值。
var arr = [];
arr[0] = ‘a';
注意:任何类型的数据,都可以放入数组。
// 无参数时,返回一个空数组 []
var arr1=new Array(); console.log(arr1);//[]
//单个正整数参数,表示返回的新数组的长度
new Array(1) // [undefined × 1]
new Array(2) // [undefined x 2]
new Array(1); console.log(new Array(1));//[]
// 单个非正整数参数(比如字符串、布尔值、对象等),
// 则该参数是返回的新数组的成员
new Array('abc') // ['abc']
// 多参数时,所有参数都是返回的新数组的成员
new Array(1, 2) // [1, 2]
不建议使用它生成新数组,直接使用数组的字面量是更好的方法
(2)多维数组
如果数组的元素还是数组,就形成了多维数组。
var a = [[1, 2], [3, 4]];
a[0][1] // 2
a[1][1] // 4
(3)数组的本质
本质上,数组属于一种特殊的对象。typeof运算符会返回数组的类
型是object。
typeof [1, 2, 3] // "object"
(4)length属性
数组的length属性,返回数组的成员数量。
['a', 'b', 'c'].length // 3
length属性是可写的
var arr = [ 'a', 'b', 'c' ];
arr.length // 3
arr.length = 2;
arr // ["a", "b"]
如果人为设置length大于当前元素个数,则数组的成员数量会增加
到这个值,新增的位置都是空位。
var a = ['a'];
a.length = 3;
a[1] // undefined
如果人为设置length为不合法的值,JavaScript会报错。
// 设置负值
[].length = -1
// RangeError: Invalid array length
(5)for…in循环和数组的遍历
使用for...in循环,可以遍历数组的所有元素。
var a = [1, 2, 3];
for (var i in a) {
console.log(a[i]);
}
当数组的某个位置是空元素,即两个逗号之间没有任何值,我们称
该数组存在空位(hole)。
var a = [1, , 1];
a.length // 3 (数组空位不影响数组的长度)
需要注意的是,如果最后一个元素后面有逗号,并不会产生空
位。也就是说,有没有这个逗号,结果都是一样的。
var a = [1, 2, 3,];
a.length // 3
var a=[1,2,3];
delete a[1];//
console.log(a[1]);//undefined
console.log(a);//Array [ 1, <1 个空的存储位置>, 3 ]
注意:delete命令不影响length属性。
var a = [1, 2, 3];
delete a[1];
delete a[2];
a.length // 3
(6)数组详解
valueOf方法,toString方法
valueOf方法返回数组本身。
var a = [1, 2, 3];
a.valueOf() // [1, 2, 3]
toString 方法返回数组的字符串形式。
var a = [1, 2, 3];
a.toString() // "1,2,3"
var b = [1,2,[3,4,5]];
b.toString() // ''1,2,3,4,5''
var a=[1,2,3];
console.log( a.valueOf());//Array [ 1, 2, 3 ]
console.log(a.toString());//1,2,3
push方法,pop方法
push方法用于在数组的末端添加一个或多个元素,并返回添加后
的数组的长度(该方法会改变原数组)
var a = [];
a.push(1) // 1;a.push('a'); a.push(true,false);
a; // [1,'a',true,false]
pop方法用于删除数组的最后一个元素,并返回该元素。(该方法
会改变原数组)
var a = ['a', 'b', 'c'];
a.pop() // 'c'
var a=[true,false];
a.push(1);
console.log(a);//Array [ true, false, 1 ]
a.pop();
console.log(a);//Array [ true, false ]
join方法
join方法以参数作为分隔符,将所有数组成员组成一个字符串返回
。如果不提供参数,默认用逗号分隔。
var a = [1, 2, 3, 4];
a.join() // "1,2,3,4"
a.join('') // '1234'
a.join("|") // "1|2|3|4"
var a = [1, 2, 3, 4];
console.log(a.join()) ;//1,2,3,4
console.log(a.join('')); // 1234
console.log(a.join("|")) ;// 1|2|3|4
concat方法
用于多个数组的合并,它将新数组的成员,添加到原数组的尾部,
然后返回一个新数组,原数组不变
console.log(['hello'].concat(['world']));//Array [ "hello", "world" ]
console.log( ['hello'].concat(['world'], ['!']));//Array [ "hello", "world", "!" ]