第六节 Node数组

一.数组的初始化

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值