一、位置方法
indexOf()和laseIndexOf()
indexOf是从数组的第0项开始向后查找,没有找到返回-1,要求使用===
var numbers = [1,2,3,4,5,4,3,2,1]; alert(numbers.indexOf(4));//3
lastIndexOf是从数组的最后一项开始向前查找
var numbers = [1,2,3,4,5,4,3,2,1]; alert(numbers.lastIndexOf(4));//5
二、数组的判断方法
如果不支持ES5,一般IE低版本不支持,所以要用 Object.prototype.toString() 判断:
var a = [0, 1, 2]; alert(Object.prototype.toString.call(a) === '[object Array]'); // true
如果支持就用Array.isArray();
var a = [0, 1, 2]; alert(Array.isArray(a)); // true在IE8以下无效
三、迭代方法
1、every()
var numbers = [1,2,3,4,5]; var evertResult = numbers.every(function (item, index, array) { return (item > 2); }); alert(evertResult);//false;因为every()是如果函数每一项都返回true那么是true
2、some()
var numbers = [1,2,3,4,5]; var someResult = numbers.some(function (item, index, array) { return (item > 2); }); alert(someResult);//true;只要传入函数对数组有一项是true返回为true;
3、filter()
var numbers = [1,2,3,4,5]; var filterResult = numbers.filter(function (item, index, array) { return (item > 2); }); alert(filterResult);//3,4,5;指定的函数确定是否在返回的数组中包含的某一项;
4、map()
var numbers = [1,2,3,4,5]; var mapResult = numbers.map(function (item, index, array) { return item * 2; }); alert(mapResult);//2,4,6,8,10;指定的函数确定是否在返回的数组中包含的某一项;
5、forEach()
var numbers = [1,2,3,4,5]; numbers.forEach(function (item, index, array) { alert(numbers);//1,2,3,4,5执行五次 alert(item*numbers.length);//5,10,15,20,25(1*5,2*5,3*5,4*5,5*5) });
四、缩小
var values = [1,2,3,4,5]; var sum = values.reduce(function(prev,cur,index,array) { return prev + cur; }); alert(sum);//15