5_引用类型(【二】ECMA5数组新特性)

对于ECMAscript5这个版本的Array新特性补充:
位置方法:indexOf    lastIndexOf

var arr = [1, 2, 3, 4, 5, 4, 3, 2, 1];
//查找元素位置的方法 indexOf() lastIndexOf() 在查找元素时使用===符比较
//indexOf()方法参数:
//一个参数:表示在数组中查找的元素值
//两个参数: 第一个参数表示起始位置,第二个参数表示查找的元素值
var index = arr.indexOf(4);
console.info(index); // 3
var index = arr.indexOf(4, 4);
console.info(index); // 5
var index = arr.lastIndexOf(2);
console.info(index); // 7

迭代方法:every    filter    forEach    some    map

var arr = [1, 2, 3, 4, 5, 4, 3, 2, 1];
//五个新加迭代的方法
//every filter forEach map some 所有方法都不修改原数组
//每个方法都需要传递回调函数callback,回调函数的参数有三个:
//  item:当前项
//  index:当前项的索引位置
//  array:数组本身
//every:对于数组的每一个元素进行一个函数的运算,如果每一项都返回true,最终结果返回true;
//如果有一个返回false,最终结果返回false
var result = arr.every(function(item, index, array) {
    if(item > 2){
        return true;
    }
})
console.info(result); 
//filter:对于数组的每一个元素进行一个函数的运算,把过滤后的结果返回一个新的数组
 var result = arr.filter(function(item, index, array) {
    if(item > 2){
        return true;
    }
})
console.info(result);  
//forEach:循环数组中每一项的值并执行一个方法,没有返回值
arr.forEach(function(item, index, array) {
    console.info(item);
}) 
//map:对于数组的每一个元素进行一个函数的运行,可以经过函数执行完毕后把新的结果返回
var result = arr.map(function(item, index, array) {
     return item * 2;
})
console.info(result); 
//some:对于数组每一个元素进行一个函数的运行,如果有一项返回true最终返回true;
//如果每一项都返回false,最终返回false
var result = arr.some(function(item, index, array) {
     return item >= 5;
})
console.info(result);

缩小方法:reduce    reduceRight

var arr = [1, 2, 3, 4, 5, 4, 3, 2, 1];
//reduce reduceRight
//对数组元素值进行计算,返回最后一次计算的值。
//通过回调函数callback把数组中的值运算为一个结果值
//回调函数参数
//    pre:前一个值
//    current:当前值
//    index:索引值
//    array:数组本身
 
var result = arr.reduce(function(prev, current, index, array) {
    return prev + current;
});
console.info(result);
var result = arr.reduceRight(function(prev, current, index, array) {
    return prev + current;
});
console.info(result);

你可能感兴趣的:(ECMA5数组新特性)