登录  /  注册
首页 > web前端 > js教程 > 正文

关于js 迭代器方法

小云云
发布: 2017-12-06 15:03:10
原创
1905人浏览过

迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。 js 数组的迭代器方法,分为两种:一种不生成新数组,一种产生新数组。

第一种方法:不产生任何新数组,相反,他们要么对于数组中的每个元素进行某种操作,要么返回一个值。

1. forEach()方法,该方法接收一个函数作为参数,对数组中的每个元素使用该函数。

<script>
 function arr(num){console.log(num+1)};
 var array = [1,2,3,4,5,6];
 array.forEach(arr);
</script>
登录后复制

2.every()和some(),这两个方法都是接受一个返回值为布尔类型的函数,对数组中的每一个元素使用该函数。every()方法是对于所有元素,该函数都返回true,该方法就返回true。而some()方法时只要有一个元素使用该函数返回true,该方法就返回true。

<script>
 var  arr = [1,3,4,5,6,7,8];
function even(num){return num%2 ==0};
var sum = arr.every(even);
var  nums = arr.some(even);
console.log(sum)//false;
console.log(nums)//true;
登录后复制
</script>
登录后复制

3.reduce()方法接受一个函数,返回一个值。该方法会从一个累加值开始,不断对累加值和数组中的后续元素调用该函数,直到数组中的最后一个元素,最后返回得到的累加值。还可以把字符串数组元素连接成一个长字符串

function add(total,num){return total+-*/num};
var arr =[1,2,3,4];
var sum = arr.reduce(add);
登录后复制

js还提供了reduceRight()方法,不同的是他和reduce()方法顺序刚好相反,从右往左。<br/>第二种方法 生成新数组的迭代器方法

有两个迭代器方法可以产生新数组:map()和filter()。map()和forEach()有点像,对数组中的每个元素使用某个函数,两者区别在于map()返回一个新数组,该数组是对原有元素应用某个函数得到的结果。

   function add(num) {
        return num+=5;
    }
    var words =[1,2,3,4,5];
    var sum =words.map(add);
console.log(sum);//[6,7,8,9,10]
登录后复制

filter() 和every()类似,传入一个返回值为布尔类型的函数,和every()不同的是,当对数组中的所有元素应用该函数,结果均为true时,该方法并不返回true,而是返回一个新数组,该数组包含应用该函数后结果为true的元素。

    function add(num) {
        return num%2 == 0;
    }
    var words =[1,2,3,4,5];
    var sum =words.filter(add);
console.log(sum);//[2,4];
登录后复制
<br/>
登录后复制

filter()还可以用于过滤字符串数组。例如:

function add(str){if(str).indexOf("cie")>-1){return true;}return false;}
var words =["recieve","deceit","deceive"]
var miss = words.filter(add);
console.log(miss)//["recieve"]
登录后复制

以上内容就是关于js 迭代器方法,希望能帮助到大家。

相关推荐:

如何使用php迭代器实现一个斐波纳契数列函数的实例分析

php的迭代器是什么

JavaScript迭代器模式如何实现和用法实例详解

以上就是关于js 迭代器方法的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号