第六节 Node数组

来源:互联网 发布:网络批发平台有哪些 编辑:程序博客网 时间:2024/06/04 01:38

一.数组的初始化

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];//everyvar e = arr.every(function(m){        return m >10;});console.log(e);//falsevar s = arr.some(function(m){        return m >10;});console.log(s);//truevar 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
0 0
原创粉丝点击