标签:valueof index 自动 检测 err 类型 remove return var
var a=new Array(20); //创建length为20的数组
var a=[‘example‘] //创建一个含有一项的数组
(1)instanceof
(2)Array.isArray()
(1)toLocaleString()
(2)toString()
(3)valueOf()
(4)toLocaleString()
调用数组的toString()和valueOf()方法会返回相同的值,即由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串。
toLocaleString()经常会返回与toString()和valueOf()方法相同的值,但也不总是如此。如下
var person1={ toLocaleString:functiong{ return ‘我爱双妙‘; }, toString:{ return‘我爱喵喵‘; } }; var person2={ toLocaleString:functiong{ return ‘我爱肥妙‘; }, toString:{ return‘我爱肥喵‘; } }; var people=[person1,person2]; alert(people); //我爱喵喵,我爱肥喵 alert(people.toString()); //我爱喵喵,我爱肥喵 alert(people.toLocaleString()); //我爱双妙,我爱肥妙
(1)push()
(2)pop()
var colors=new Array(); var count=colors.push(‘red‘,‘green‘); alert(count); //2 count=colors.push(‘black‘); alert(count); //3 var item=colors.pop(); alert(item);
shift()
var colors=new Array(); var count=colors.push("red","green"); alert(count); //2 count=colors.push("black"); alert(count); //3 var item=colors.shift(); //取得第一项 alert(item); //"red" alert(colors.length); //2
count=colors.unshift("red","green");
alert(count); //4
(1)reverse() //反转数组
(2)sort()
sort()方法会调用数组的toString()方法,然后比较得到的字符串,来确定如何排序。
var b=[1,15,3,20,8]; b.sort(); alert(b); //1,15,20,3,8
var a=[1,15,3,20,8];
a.reverse();
alert(a); //8,20,3,15,1
sort方法可以接受一个比较函数作为参数
function campare(value1,value2){ if(value1<value2) return -1; else if(value1>value2) return 1; else return0; } var values=[0,1,5,10,15]; values.sort(compare); alert(values); //0,1,5,10,15
如果对于数值类型或valueOf()方法会返回数值类型的对象类型,比较函数可以 写为
function compare(value1,value2){ return value2-value1; }
(1)concat()
创建一个当前数组的副本,然后将接受到的参数添加到这个副本的末尾。
var colors=["red","green","blue"]; var colors=colors.concot("yellow",["black","brown"]); alert(colors); //red.green,blue alert(color); //red,geen,blue,black,brown
(2)slice()
能够基于当前数组的一个或者多个项创建一个新的数组。该函数能够接受两个或者一个参数,在只有一个参数的情况下,该函数返回从该参数指定位置开始到当前数组末尾的所有项;如果有两个参数,该方法返回起始和结束位置之间的项,但不包括结束位置的项。slice()方法不会影响原数组。例子:
var colors=["red","green","blue","yellow","purple"]; var colors1=colors.slice(1); var colors2=colors.slice(1,4); alert(colors1); //green,blue,yellow,purple alert(colors2); //green,blue,yellow
(3)splice()
var colors=["red","green","blue"]; var removed=colors.splice(0,1); alert(colors); //green,blue alert(removed); //red
removed=colors.splice(1,0,"yellow",orange"); //从位置1开始插入两个项
alert(colors); //red,green,blue,yellow,orange
alert(removed); //空数组
removed=colors.splice(1,1,"red","purple"); alert(colors); //green,red,purple,orange,blue alert(removed); //yellow
(1)indexOf()
(2)lastIndexOf()
indexOf()从开头开始找,lastIndexOf()从结尾开始找。都接受两个参数:第一个查找的项和查找的起始位置的索引。
支持他们的浏览器包括IE9+,firefox2+,safari3+,opera9.5+和chrome
五个迭代方法,每个方法都有两个参数:要在每一项运行的函数和(可选的)运行该函数的作用域对象----影响this的值。传入这些方法中的函数会接受三个参数:数组项的值,该乡在数组中的索引,和数组对象的本身。
var number=[1,2,3,4,5,4,3,2,1]; var everyresult=number.every(function(item,index,array){ return (item>2); }); alert(everyresult); //false var someresult=number.some(function(item,index,array){ return (item>2); }); alert(someresult); //true var filterresult=number.filter(function(item,index,array){ return (item>2); }); alert(filterresult); //[3,4,5,4,3] var mapresult=number.filter(function(item,index,array){ return item*2; }); alert(mapresult); //[2,4,6,8,10,8,6,4,2] number.forEach(function(item,index,array){ //执行某些操作; });)
支持他们的浏览器包括IE9+,firefox2+,safari3+,opera9.5+和chrome
(1)reduce()
(2)reduceRight()
这两个方法都会迭代数组的所有项,然后构建一个最终返回值。其中,reduce()方法从数组的第一项开始,逐个遍历到最后。而reduceRight()则相反。这两个方法都接受两个参数:一个在每一项调用的函数和(可选的)作为缩小的基础的初始值。参数一是接受4个参数的函数:前一个值,当前值,项的索引和数组对象。这个函数返回的任何值都会作为第一个参数自动传给下一项。第一次迭代发生在数组的第二项上,因此第一个参数是数组的第一项,第二个参数是数组的第二项。
使用reduce()函数可以执行数组中所有值之和的操作,如下:
var values=[1,2,3,4,5]; var sum=values.reduce(function(prev,cur,index,array){ return prev+cur; }); alert(sum); //15
标签:valueof index 自动 检测 err 类型 remove return var
原文地址:http://www.cnblogs.com/dongzixiansheng/p/6979142.html