ES6关于数组迭代方法和归并方法

  • 迭代方法

     迭代方法一共包含5种:

  • every():对数组种每一项运行给定的函数,如果该函数对每一项都返回true,则返回true。
  • filter():对数组种每一项运行给定的函数,返回该函数会返回true的项所组成的数组。
  • forEach():就是循环了,没有返回值。
  • map():对数组种每一项运行给定的函数,返回每次函数调用的结果组成的数组。
  • some():对数组种每一项运行给定的函数,如果该函数对任一项返回true,则返回true。

其实个人感觉还是从英文的字面去理解各个函数的作用比较好,every就是每一个都得行才行,filter就是过滤嘛, 满足条件的才行,some就是有一个就行,唯一需要稍微记一下的是map,它是对每一个进行操作,然后返回操作后的值,比如对一个数组[1,2,3,4]执行map(),使其每一项都*2,最终得到的就是[2,4,6,8]。

  • 归并方法

    归并方法一共有2种:

  • reduce():迭代数组的的所有项,然后构建一个最终返回的值,从第一项开始。
  • reduceRight():跟reduce()相反,是从最后一项开始, 向前迭代。

下面给出简单的代码示例:

var numbers = [1,3,2,5,8,4,2,6]

var everyResult = numbers.every(function(item, index, array){
  return (item > 3)
})
alert(everyResult)  //false,item是每一项,index是下标,array是原数组,下同

var someResult = numbers.some(function(item, index, array){
  return (item > 3)
})
alert(someResult)  //true

var filterResult = numbers.filter(function(item, index, array){
  return (item > 3)
})
alert(filterResult)  //[5,8,4,2,6]

var mapResult = numbers.map(function(item, index, array){
  return (item*2)
})
alert(mapResult)  //[2,6,4,10,16,8,4,12]

numbers.forEach(function(item, index, array){
  //执行一个操作,无返回值
})

var values = [1,2,3,4,5]

var redeceResult = values.reduce(function(prev, cur, index, array){
  return prev + cur
})
alert(redeceResult) //15,prev是前一个操作结果(第一次为数组的第一项:1),cur是当前项(第一次为数组的第二项:2),index是下标,array是原数组

关于上述迭代和归并,是ECMAscript5加进来的,支持目前的所有主流浏览器(没有IE8哈 ==!),所以对于ES6/ES7/ES8...当然也可以啦。

熟练这几个简单使用,去代替那些for循环吧!

转载于:https://my.oschina.net/pandon/blog/864006

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值