JavaScript学习笔记(三)

基于ECMAScript5的数组补充

对于ECMAscript5这个版本的Array新特性补充:
- 位置方法:indexOf lastIndexOf
- 迭代方法:every filter forEach some map
- 缩小方法:reduce reduceRight

indexOf()和lastIndexOf()

var arr = [1,2,3,4,5,4,3,2,1];

//新加位置的方法: indexOf lastIndexOf
// 1个参数的时候表示传值 返回索引位置(index从0开始)
var index = arr.indexOf(4);     //3
// 2个参数的时候 第一个参数表示起始位置 第二个参数还是值 
var index = arr.indexOf(4,4);   //5
alert(index);       
//他们查找数组比较的时候 '===' 

// lastIndexOf 
var index = arr.lastIndexOf(2);  //7
alert(index);

every() filter() forEach() some() map()

var arr = [1,2,3,4,5,4,3,2,1];
//every :对于数组每一个元素进行一个函数的运行 如果都返回true 最后则返回true 如果有一个返回false最后结果则返回false
var result = arr.every(function(item , index , array){
    return item > 2 ;
});             
alert(result); //false

//filter :对于数组的每一个元素进行一个函数的运行 给定的函数去执行 把过滤后的结果返回 
var result = arr.filter(function(item , index , array){
    return item > 2 ;
});
alert(result);   //3,4,5,4,3

//forEach :循环数组每一项的值 并执行一个方法 
arr.forEach(function(item, index, array){
    alert(item);
}); //1,2,3,4,5,4,3,2,1

//map 对于数组的每一个元素进行一个函数的运行 可以经过函数执行完毕后 把新的结果返回
var result = arr.map(function(item, index, array){
    return item*2;
});     
alert(result);  //2,3,6,8,10,8,6,4,2

//some :对于数组每一个元素进行一个函数的运行 如果有一项返回true 最后则返回true 如果每一项都返回false最后结果则返回false
var result = arr.some(function(item, index, array){
    return item >=5 ;
});
alert(result); //ture                   

reduce() reduceRight()

var arr = [1,2,3,4,5,4,3,2,1];
//变量的起始位置不同  
//前一个值 , 当前值 , 索引位置 , array
var result = arr.reduce(function(prev , cur , index , array){
    return prev + cur ;
});
alert(result);   //25

var result = arr.reduceRight(function(prev , cur , index , array){
    return prev + cur ;
});
alert(result);    //25                  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值