js数组(二)

一、位置方法

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

  

上一篇:[HNOI2018]转盘[结论+线段树]


下一篇:[Redux] Extracting Container Components -- Complete