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

  

原文地址:https://www.cnblogs.com/shenq/p/5138534.html