博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript的Array类型总结
阅读量:4086 次
发布时间:2019-05-25

本文共 4206 字,大约阅读时间需要 14 分钟。

http://blog.csdn.net/bboyjoe/article/details/51502264

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

[javascript]   
 
  1. var colors4=[1,2,3,4];  
  2. colors4.length=3;  
  3. console.log(colors4);//=>[1, 2, 3]  
2)instanceof操作符:可检测对象是否为数组类型。

[javascript]   
 
  1. var colors=['red','blue','green'];  
  2. console.log(colors instanceof Array);//=>true  
3)转换方法:

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

[javascript]   
 
  1. var colors1=colors.toString();  
  2. console.log(colors1);//=>red,blue,green  
  3. console.log(colors1 instanceof Array);//=>false  
3.2)valueOf():返回的还是数组。

[javascript]   
 
  1. var colors2=colors.valueOf();  
  2. console.log(colors2);//=>["red", "blue", "green"]  
  3. console.log(colors2 instanceof Array);//=>true  

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

[javascript]   
 
  1. var colors3=colors.join('||');  
  2. console.log(colors3);//=>red||blue||green  

4)栈方法:

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

[javascript]   
 
  1. var colors5=[];  
  2. var count=colors5.push('red','green');  
  3. console.log(count);//=>2  
4.2)pop():从数组末尾移除最后一项,减少数组的length值,返回移除的项。

[javascript]   
 
  1. var item=colors5.pop();  
  2. console.log(item);//=>green  

5)队列方法

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

[javascript]   
 
  1. var colors6=['red','blue','green','pink'];  
  2. var item1=colors6.shift();  
  3. console.log(item1);//=>red  
5.2)unshift():在数组前端添加任意个项并返回新数组的长度。

[javascript]   
 
  1. var count1=colors6.unshift('brown','yellow');  
  2. console.log(count1);//=>5  
6)重排序方法

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

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

[javascript]   
 
  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]   
 
  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]   
 
  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]   
 
  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]   
 
  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]   
 
  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]   
 
  1. var someResult=numbers.some(function(item,index,array){  
  2.     return (item>2);  
  3. });  
  4. console.log(someResult);//=>true  
9.3)filter():对数组中的每一项运行给定函数,返回该函数返回true的项组成的数组。

[javascript]   
 
  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]   
 
  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]   
 
  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]   
 
  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  
你可能感兴趣的文章
空指针和未初始化的指针的区别
查看>>
const常量与define宏定义的区别
查看>>
内存分配中堆和栈的区别
查看>>
什么是0长数组?
查看>>
内存对齐的规则以及作用
查看>>
100条经典C++语言笔试题目-前50题
查看>>
100条经典C++语言笔试题目-后50题
查看>>
Error D8016 '/ZI' and '/Gy-' command-line options are incompatible
查看>>
剑指offer——面试题29:数组中出现次数超过一半的数字
查看>>
剑指offer——面试题30:最小的k个数
查看>>
vs2015中c++中multiset容器定义对象时参数列表中显式调用greater无法被识别的解决办法
查看>>
STL之容器set和multiset的用法详解
查看>>
剑指offer——面试题31:连续子数组的最大和
查看>>
剑指offer——面试题32:从1到n整数中1出现的次数
查看>>
剑指offer——面试题33:把数组排成最小的数
查看>>
剑指offer——面试题34:丑数
查看>>
剑指offer——面试题35:第一次只出现一次的字符
查看>>
剑指offer——面试题36:数组中的逆序对
查看>>
剑指offer——面试题37:两个链表的第一个公共节点
查看>>
剑指offer——面试题38:数字在排序数组中出现的次数
查看>>