js 迭代器方法
来源:互联网 发布:基地阅读顺序知乎 编辑:程序博客网 时间:2024/06/18 18:06
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()方法顺序刚好相反,从右往左。
第二种方法 生成新数组的迭代器方法
有两个迭代器方法可以产生新数组: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];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"]
阅读全文
0 0
- js 迭代器方法
- js方法
- js方法
- js引用JS方法
- 【js】js中方法积累
- js方法调方法写法
- js调用方法中的方法
- JS toLowerCase()方法 toUpperCase()方法
- js常用方法
- 实用的js方法
- JS脚本加密方法
- 导入js文件方法:
- JS中的close()方法
- js-----exec方法
- js 常用方法大全
- js的match 方法
- JS错误定位方法
- js调用后台方法
- FPGA开发工具,Quartus II 中状态机的“悬机”
- centos7 python3.X 安装 pip3安装
- 用JavaScript实现动画效果
- Android Studio好用插件整理
- hdoj 1014 uniform generator(水题)
- js 迭代器方法
- gearman-client与gearman-worker的示例源码-C++版
- POJ 1321 棋盘问题
- Linux网络编程基础API--TCP的数据读写API
- ACL Role Permission 出错"Undefined variable: permission"
- 如何在Keil uVision5建立飞思卡尔K60开发板的工程
- mybatis缓存---ehcache
- 【微营销】第14天 微营销的落地执行二
- [持续更新]莫比乌斯反演、杜教筛等数论变换中的小技巧