一.数组的初始化
1.构造方法
var arr = new Array();
var arr = Array();
var arr = Array(1,2,3,4);
2.字面量方法
var arr = [];
var arr = [1,2,3];
3.检查一个变量是否为数组
instanceof 操作符
Array.isArray();方法
二.数组的转换
1.将对象的键值转换为数组:Object.keys()
2.String类型转换为数组:split()
3.将数组转换成String()类型:
toString()
join()
4.数组排序
sort()
reverse()
sort()与reverse()是按照字符串的方式进行比较的,不是按照数字的值.都会改变元数组
> var arr = new Array();
undefined
> var obj = {a:1,b:2,c:3,d:4}
undefined
> obj
{ a: 1, b: 2, c: 3, d: 4 }
> Object.keys(obj)//将对象的键值转换为数组
[ 'a', 'b', 'c', 'd' ]
> Object.keys(obj).length//数组的个数
4
> var str = 'mingming is big pig';
undefined
> str.split(' ');//分割字符串为数组
[ 'mingming', 'is', 'big', 'pig' ]
> var arr = Object.keys(obj);
undefined
> arr
[ 'a', 'b', 'c', 'd' ]
> arr.toString();//默认是按照","把数组中的值连接成字符串
> 'a,b,c,d'
> arr.join();//默认是按照","把数组中的值连接成字符串
'a,b,c,d'
> arr.join(' ')//默认是按照" "把数组中的值连接成字符串
'a b c d'
> var arr = [4,1,3,2,56,34,22,678];
undefined
> arr.sort();//按照字符串的方式进行比较,从小到大
[ 1, 2, 22, 3, 34, 4, 56, 678 ]
> arr.reverse();//按照字符串的方式进行比较,从大到小
[ 678, 56, 4, 34, 3, 22, 2, 1 ]
var arr = [1,3,21,34,13,56];
//自定义排序的方法
function cmab(a,b){
if(a>b){
return 1;
}else if(a<b){
return -1;
}else if(a == b){
return 0;
}
}
arr.sort(cmab);
console.log(arr);
三.数组的头尾操作
1.向数组的末尾插入一个或多个成员:push()
返回操作后数组的成员个数
2.删除数组最后一个成员:pop()
返回被删除的成员
3.向数组的头部插入一个或多个成员:unshift()
返回操作后数组的成员个数
4.删除数组第一个成员:shift()
返回被删除的成员
> var arr = [1,2,3];
> arr.push('keke','zhangshisan',false);
6
> arr.pop();
false
> arr.pop();
'zhangshisan'
> arr.unshift('xiaoxiao');
5
> arr.shift();
'xiaoxiao'
四.其他操作
1.concat():数组连接
不改变被连接的原数组,返回一个新的数组
2.slice():从数组中取出一部分
3.splice():用于在数组中进行删除,插入和替换操作,返回删除成员组成的新数组.
> var arr = [1,2,3];
undefined
> var brr = ['mingming','xiaoxiao'];
undefined
> arr.concat(brr);
[ 1, 2, 3, 'mingming', 'xiaoxiao' ]
> arr
[ 1, 2, 3 ]
> brr
[ 'mingming', 'xiaoxiao' ]
> arr.splice(1,1);
[ 2 ]
> arr
[ 1, 3 ]
> arr.splice(1,0,'mingming',false);
[]
> arr
[ 1, 'mingming', false, 3 ]
>
4.数组的迭代和遍历的方法:
every()/some()/forEach()/filter()/map()
传入函数作为参数,然后再遍历整个数组
1).every():传入的函数,如果成员在函数执行每个值都返回ture,那么every()就返回ture
2).some():只要有一个成员在函数执行中返回ture,some()就返回ture
3)forEach():没有返回值,用于循环遍历,单纯执行函数操作.
4)filter():会将所有在函数执行中返回ture的成员,组成一个新的数组,并返回.
5map():将函数处理后的结果返回
var arr = [1,2,3,45,45,32,76];
//every
var e = arr.every(function(m){
return m >10;
});
console.log(e);//false
var s = arr.some(function(m){
return m >10;
});
console.log(s);//true
var f = arr.filter(function(m){
return m>10;
});
console.log(f);//[45,45,32,76]
var m =arr.map(function(m){
return m+10;
});
console.log(m);
//[ 11, 12, 13, 55, 55, 42, 86 ]
5.数组的归纳方法
reduce()/reduceRight()
var arr = [1,2,3,4];
var r = arr.reduce(function(prev,cur,index,arr){
console.log('prev,cur,index,arr',prev,cur,index,arr);
return prev+cur;
});
console.log(r);
prev,cur,index,arr 1 2 1 [ 1, 2, 3, 4 ]
prev,cur,index,arr 3 3 2 [ 1, 2, 3, 4 ]
prev,cur,index,arr 6 4 3 [ 1, 2, 3, 4 ]
10