JavaScript的Array类型总结

http://blog.youkuaiyun.com/bboyjoe/article/details/51502264

1)length属性:通过设置length,可以从数组的末尾移除项或向数组中添加新项。

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var colors4=[1,2,3,4];  
  2. colors4.length=3;  
  3. console.log(colors4);//=>[1, 2, 3]  
2)instanceof操作符:可检测对象是否为数组类型。

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var colors=['red','blue','green'];  
  2. console.log(colors instanceof Array);//=>true  
3)转换方法:

3.1)toString():会返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串。

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var colors1=colors.toString();  
  2. console.log(colors1);//=>red,blue,green  
  3. console.log(colors1 instanceof Array);//=>false  
3.2)valueOf():返回的还是数组。

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var colors2=colors.valueOf();  
  2. console.log(colors2);//=>["red", "blue", "green"]  
  3. console.log(colors2 instanceof Array);//=>true  

3.3)join():可以使用不同的分隔符来构建这个字符串。

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var colors3=colors.join('||');  
  2. console.log(colors3);//=>red||blue||green  

4)栈方法:

4.1)push():可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var colors5=[];  
  2. var count=colors5.push('red','green');  
  3. console.log(count);//=>2  
4.2)pop():从数组末尾移除最后一项,减少数组的length值,返回移除的项。

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var item=colors5.pop();  
  2. console.log(item);//=>green  

5)队列方法

5.1)shift():移除数组中的第一项并返回该项,同时将数组长度减1。

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var colors6=['red','blue','green','pink'];  
  2. var item1=colors6.shift();  
  3. console.log(item1);//=>red  
5.2)unshift():在数组前端添加任意个项并返回新数组的长度。

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var count1=colors6.unshift('brown','yellow');  
  2. console.log(count1);//=>5  
6)重排序方法

6.1)reverse():反转数组项的顺序。

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var values=[1,2,3,4,5];  
  2. values.reverse();  
  3. console.log(values);//=>[5,4,3,2,1]  
6.2)sort():按字符串升序排列数组项。还可以接受一个比较函数作为参数,以便我们指定哪个值位于哪个值的前面。

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var values1=[0,1,5,10,15];  
  2. values1.sort();  
  3. console.log(values1);//=>[0,1,10,15,5]  
  4. function compare(value1,value2){  
  5.     if(value1<value2){  
  6.         return -1;  
  7.     }else if(value1>value2){  
  8.         return 1;  
  9.     }else{  
  10.         return 0;  
  11.     }  
  12. }  
  13. values1.sort(compare);  
  14. console.log(values1);//=>[0,1,5,10,15]  
7)操作方法

7.1)concat():基于当前数组中的所有项创建一个新数组。

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var colors7=['red','green','blue','pink'];  
  2. var colors8=colors7.concat('yellow',['black','brown']);  
  3. console.log(colors8);//=>["red","green","blue","pink","yellow","black","brown"]  
7.2)slice():能够基于当前数组中的一或多个项创建一个新数组。slice()方法不会影响原始数组。

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var colors9=colors7.slice(1);  
  2. console.log(colors9);//=>['green','blue','pink']  
  3. var colors10=colors7.slice(1,3);  
  4. console.log(colors10);//=>['green','blue']  
7.3)splice():主要用途是向数组的中部插入项。
[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var colors11=['red','green','blue','pink'];  
  2. var removed=colors11.splice(1,2);//删除  
  3. console.log(colors11);//=>["red", "pink"]  
  4. console.log(removed);//=>["green", "blue"]  
  5. removed=colors11.splice(1,0,'yellow','orange');//插入  
  6. console.log(colors11);//=>["red", "yellow", "orange", "pink"]  
  7. console.log(removed);//=>[]  
  8. removed=colors11.splice(1,1,'red','purple');//替换  
  9. console.log(colors11);//=>["red", "red", "purple", "orange", "pink"]  
  10. console.log(removed);//=>["yellow"]  
8)位置方法 IE9+

8.1)indexOf()和lastIndexOf():返回要查找的项在数组中的位置,或者在没找到的情况下返回-1。

在比较第一个参数与数组中的每一项时,会使用全等操作符。

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var numbers=[1,2,3,4,5,4,3,2,1];  
  2. console.log(numbers.indexOf(4));//=>3  
  3. var person={name:'Jason'};  
  4. var people=[{name:'Jason'}];  
  5. var morePeople=[person];  
  6. console.log(people.indexOf(person));//=>-1  
  7. console.log(morePeople.indexOf(person));//=>0  
9)迭代方法 IE9+

9.1)every():对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回ture。

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var numbers=[1,2,3,4,5,4,3,2,1];  
  2. var everyResult=numbers.every(function(item,index,array){  
  3.     return (item>2);  
  4. });  
  5. console.log(everyResult);//=>false  
9.2)some():对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true。

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var someResult=numbers.some(function(item,index,array){  
  2.     return (item>2);  
  3. });  
  4. console.log(someResult);//=>true  
9.3)filter():对数组中的每一项运行给定函数,返回该函数返回true的项组成的数组。

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var filterResult=numbers.filter(function(item,index,array){  
  2.     return (item>2);  
  3. });  
  4. console.log(filterResult);//=>[3, 4, 5, 4, 3]  
9.4)map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var mapResult=numbers.map(function(item,index,array){  
  2.     return item*2;  
  3. });  
  4. console.log(mapResult);//=>[2, 4, 6, 8, 10, 8, 6, 4, 2]  
9.5)forEach():对数组中的每一项运行给定函数。这个方法没有返回值。

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var sum=0;  
  2. numbers.forEach(function(item,index,array){  
  3.     sum+=item;  
  4. });  
  5. console.log(sum);//=>25  
10)归并方法:ie9+

10.1)reduce()和reduceRight():迭代数组的所有项,然后构建一个最终返回的值。

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var values=[1,2,3,4,5];  
  2. var sumRes=values.reduce(function(prev,cur,index,array){  
  3.     return prev+cur;  
  4. });  
  5. console.log(sumRes);//=>15  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值