1、ECMAscript5 这个版本的Array 新特性补充
-- 位置方法:indexOf、lastIndexOf ,查找数组的时候不仅比较数值,还要比较数据类型(===)
--迭代方法:every、filter、forEach、some、map
-- 缩小方法:reduce、reduceRight
// show indexOf、lastIndexOf
var arr = [1,2,3,4,5,4,3,2,1];
// 一个参数的时候表示 传值,返回该值 第一次出现在数组中的索引位置
var index = arr.indexOf(4);
console.log(index); // 3
// 两个参数的时候 第一个参数表示 查询的起始位置 ,第二个参数还是值,返回从查询的起始位置 开始 该值第一次出现在数组中的索引位置
var index2 = arr.indexOf(4,4);
console.log(index2); // 5
// 从数组末端,往前找,返回该值从后往前,第一次出现在数组中的索引位置
var lastIndex = arr.lastIndexOf(1);
console.log(lastIndex); // 8
/**
5个新加迭代的方法
every:对数组中每一个元素进行一个函数的运行,如果都返回true 则为 true,只要有一个返回 false 则为false
filter:对数组中每一个元素进行一个函数的运行,把函数过滤后的结果返回
forEach:循环数组没一项的值,并执行一个方法
map:对数组中的每一个元素进行一个函数的运行,函数执行完毕后,把新的结果数组返回
some:对数组中每一个元素进行一个函数的运行,如果都返回false 则为 false,只要有一个返回 true则为true
**/
// show every
var arr = [1,2,3,4,5];
var result = arr.every(function(item,index,array){
return item > 2;
});
console.log(result); // false
var result2 = arr.every(function(item,index,array){
return item > 0;
});
console.log(result2); // true
// show filter
var arr2 = [1,2,3,4,5];
var result3 = arr2.filter(function(item,index,array){
return item > 2;
});
console.log(result3); //
/**
reduce 和 reduceRight
变量的起始位置不同
**/
var arr = [1,2,3,4,5];
// 参数依次为 前一个值,当前值,索引位置,arr数组
var result = arr.reduce(function(pre,cur,index,array){
return pre + cur;
});
console.log(result); // 15
var result2 = arr.reduceRight(function(pre,cur,index,array){
return pre + cur;
});
console.log(result2); // 15