javascript 之 数组
定义:var colors=new Array();
var colors=new Array(3);
var colors=new Array('red');
var colors=['red','green'];
检测数组:
if (value instanceof Array) :假定只有一个全局执行环境。具体是不同框架有不同的定义
Array.isAarry(value): ie9+,firefox4+,safari5+, opera10.5+
数组转换:所有对象都具有toLocaleString(),toString() 和valueOf();
colors.toString();//red,blue,green ,上诉三个方法都是这样调用
与 colors.join(',')效果一致。
栈方法:LIFO(Last-In-First-Out 后进先出) :最新添加的项最早被移除
push():在数组末尾添加该项
pop():在数组末尾移除最后项
队列方法:FIFO(First-In-First-Out先进先出) :在队列的末端添加项,从列表的前端移除项
shift() :移除数组中的第一项
unshift() :在数组前端添加任意个项
排序方法:
values.sort();
values.reverse();
操作方法:
concat():可以基于当前数组中的所有项创建一个新的数组
例:var colors=[red,green]
var colors2=colors.concat(yellow,[black,brown])
alert(colors2.toString()) ;// red,green,yellow,black,brown
最强大的数组方法:splice() 主要用途是向数组的中部插入项
删除:可删除任意数量的项,需指定两个参数:要删除的第一项的位置和要删除的项数
例:splice(0,2)
插入:可向指定的位置插入任意数量的项 ,需提供多个参数:起始位置,插入(删除)多少项,项值(....)
例:splice(2,0,red,green) 从位置2开始插入两项
替换:可向指定的位置插入任意数量的项,且同时删除任意数量的项,需指定三个参数:起始位置,要删除和插入的任意项
例:splice(2,1,red,green),会删除位置2的项,从位置2开始插入两项
位置方法:
indexOf():从数组开头开始向后查找
lastIndexOf():从数组后面开始向前查找
需要注意兼容:ie9+,firefox2+,safari3+等
迭代方法:定义了5个迭代方法
var numbers=[1,2,3,4,5,4,3,2,1]
every():对数组中的每一项运行给定函数,每一项都返回true,则返回true;
例: var everyResult=numbers.every(function( item,index,array){ return (item>2) }) //返回false
some():对数组中的每一项运行给定函数,有一项返回true,则返回true;
例: var someResult=numbers.some(function( item,index,array){ return (item>2) }) //返回true
filter():对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组
例:var filterResult=numbers.filter(function( item,index,array){ return (item>2) }) //返回 {3,4,5,4,3}
map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组
例:var mapResult=numbers.map(function( item,index,array){ return (item*2)}) //返回{2,4,6,8,10.8.6.4.2}
forEach():对数组中的每一项运行给定函数,这个方法没有返回值
例:var numbers.forEach(function(item,index,array){ }) //本质于for循环一样
归并方法:迭代数组的所有项,然后构建一个最终返回的值
reduce():从数组的第一项开始,逐个遍历到最后
reduceRight():从数组的第一项开始,向前遍历到第一项
都接收四个参数:前一个值,当前值,项的索引,和数组对象
例:var values=[1,2,3,4,5]
var sum=values.reduce(function(prev,cur,index,array){ return prev+cur })
分析:第一轮:prev 1,cur 2,第二轮: prev 3,cur 3