js中数组迭代函数—(1)不生成新数组

不生成新数组的迭代器方法 它们要么对于数组中的每个元素执行某种操作, 要么返回一个值。
 1、 forEach(),  该方法接受一个函数作为参数, 对数组中的每个元素 使用该函数
 
< script  type = "text/javascript" >
function  square ( num )  {
document . write ( num  *  num + " \t " ) ;
}
function  doEach ( ) {
var  nums  =  [ 1 ,  2 ,  3 ,  4 ,  5 ,  6 ,  7 ,  8 ,  9 ,  10 ]  ;
nums .  forEach ( square ) ;
}
< /script>
 
nums数组里面的每个元素都会以形参的形式传入square()去执行 一次。
2、
every() 该方法接受一个返回值为布尔类型的函数, 对数组中的每 个元素使用该函数。 如果对于所有的元素, 该函数均返回  true, 则该方法返回 true
 
< script  type = "text/javascript" >
function  isEven ( num ) 
{
return  num  %  2  ==  0 ;
}
function  doEvery ( )
{
     var  nums  =  [ 2 ,  4 ,  6 ,  8 ,  10 ]  ;
     var  even  =  nums .  every ( isEven ) ;
     if  ( even ) 
     {
     alert ( " all numbers are even"  ) ;
     }
     else 
     {
     alert ( " not all numbers are even"  ) ;
     }
}
< /script>
 
3、 some(),该 方法也接受一个返回值为布尔类型的函数, 只要有一个元素使得该函数返回  true 该方法就返回  true
 
< script  type = "text/javascript" >
function  isEven ( num ) 
{
return  num  %  2  ==  0 ;
}
function  doSome ( )
{
     nums  =  [ 1 ,  3 ,  5 ,  7 ,  9 ]  ;
     someEven  =  nums .  some ( isEven ) ;
     if  ( someEven ) 
     {
     document . write ( " some numbers are even"  ) ;
     }
     else 
     {
     document . write ( " no numbers are even"  ) ;
     }
}
< /script>
 
4、 reduce() ,该方法接受一个函数, 返回一个值。 该方法会从一个累加值开始, 不断对累加值和
数组中的后续元素调用该函数, 直到数组中的最后一个元素, 最后返回得到的累加值。
 
< script  type = "text/javascript" >
function  add ( runningTotal currentValue ) 
{
     return  runningTotal  +  currentValue ;
}
function  doReduce ( )
{
     var  nums  =  [ 1 ,  2 ,  3 ,  4 ,  5 ,  6 ,  7 ,  8 ,  9 ,  10 ]  ;
     var  sum  =  nums .  reduce ( add ) ;
     document . write ( sum ) ;
}
< /script>
 
5、 reduceRight() 方法, 和 reduce() 方法不同, 它是从右到左执行。
 
< script  type = "text/javascript" >
function  concat ( accumulatedString item ) 
{
     return  accumulatedString  +  item ;
}
function  doReduceRight ( )
{
     var  words  =  [ " the "  ,  " quick "  ,  " brown "  ,  " fox "  ]  ;
     var  sentence  =  words .  reduceRight ( concat ) ;
     document . write ( sentence  ) ;
}
< /script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值