数组是值得有序集合,每一个值叫做一个元素。数组元素可以是任意类型,并且同一个数组中的不同元素也可以是不同类型的。
方式一:
var arr = [1,2,3];
方式二:
var arr = new Array(); 调用时没有参数
var arr = new Array(5); 调用时有参数,参数是这个数组的长度
var arr = new Array(5,"test",{x:1});显示指定数组元素的数值
数组的读写
每个数组中的元素在数组中都有指定的角标用于表示数组元素在数组中的位置。每个数组都以第0个元素开始,每个数组都有一个length属性用于计算数组的长度,空数组的长度为0。
var arr = [1,2,3];
读:console.info(arr[0]+":"+arr[1]+":"+arr[2]);
写:arr[0] = 4;
数组长度:console.info(arr.length); =>3
var arr = [];
arr.push(1);
arr.push(2);
arr.push(3);
arr.push({x:1});
console.info(arr);
var result = arr.pop();
console.info(result);
var result = arr.pop();
console.info(result);
shift和unshift
unshift()在数组的头部添加一个元素并返回新数组的长度
shift()在数组的头部删除一个元素并返将其返回
var arr = [1,2,3,4];
var result = arr.unshift(5);
console.info(arr); =>[5,1,2,3,4]
for/while循环
var arr = [1,2,3];
for(var i = 0,len = arr.length;i < len;i++){
console.info(arr[i]);
}
for/in循环
for(var i in arr){
console.info(i +":" + arr[i]);
}
join()方法将数组中的元素转化为字符串并连接在一起,可以指定分隔符,默认用逗号(,)分割。
var arr = [1,2,3,4];
a.join(); => "1,2,3"
a.join("-"); =>"1-2-3"
reverse()用于返回逆序数组
var arr = [1,2,3,4];
arr.reverse(); = > [4,3,2,1]
sort()排序并返回排序后的值,可以通过传入一个函数来进行限定排序方式
var arr = [3,2,4,1];
console.info(arr.sort());=> [1,2,3,4];
var arr = ['banana','cherry','apple'];
console.info(arr.sort());=>['apple','banana','cherry']
concat() 返回一个原数组和concat()参数的合并数组
var arr = [1,2,3];
arr.concat(4,5); => [1,2,3,4,5]
arr.concat([4,5],[6,7]);=>[1,2,3,4,5,6,7]
slice() 返回数组的片段
var arr = [1,2,3,4,5,6,7];
arr.slice(0,3); => [1,2,3] 从左向右数,左闭右开
arr.slice(3); => [4,5,6,7]
arr.slice(-3,-2);=> [5] 从右向左数,右闭左开,左边的数比右边的数要小
forEach()循环函数,不可以终止循环,除非遇到foreach.break异常
var arr = [1,2,3,4,5];
arr.forEach(function(a){
try{
}catch(e){
if(e === foreach.break)break;
else throw e;
}
});
返回值为undefined
map()数组元素处理函数,返回一个新的数组,原数组不变
var arr = [1,2,3];
var result = arr.map(function(param){
return param * param;
});
console.info(result); => [1,4,9]
filter()数组元素过滤函数,返回过滤后的数组,原数组不变
var arr = [1,2,3,4,5,6];
var result = arr.filter(function(param){
return param < 3;
});
console.info(result); => [1,2]
every() 数组中所有元素都满足条件返回true,否则返回false
var arr = [1,2,3];
var result = arr.every(function(param){
return param < 10;
});
console.info(result); => true
some() 数组中有满足条件的就返回true,否则返回false
var arr = [1,2,3];
var result = arr.some(function(param){
return param < 2;
});
console.info(result); => true
indexOf()从左向右搜索,返回索引值,如果没有则返回-1
var arr = [0,1,2,1,0];
arr.indexOf(1); => index:1
lastIndexOf()从右向左搜索,返回索引值,如果没有则返回-1
var arr = [0,1,2,1,0];
arr.lastIndexOf(1); => index:3
isArray()判断是否是数组
Array.isArray([]); =>true
Array.isArray({}); =>false