详谈JS中数组的迭代方法和归并方法


Posted in Javascript onAugust 11, 2017

数组的迭代方法

ES5中为数组定义了5个迭代方法。每个方法都要接收两个参数:要在每一项上面运行的函数和(可选的)运行该函数的作用域对象---影响this的值。

传入方法中的函数会介绍三个参数:1.数组项的值 2. 该项在数组的中位值 3. 数组对象本身;

every()和some()方法

every():对数组中的每一项运行给定函数,如果每一项都返回true,则返回true,否则false;

some():对数组中的每一项运行给定函数,如果至少有一项返回true,则返回true,否则false;

var arr=[1,2,4,5,3,1];
var one=arr.every(function(item,index,array){
 return (item>2); 
});
console.log(one);  //false

var two=arr.some(function(item,index,array){
 return (item>2);
});
console.log(two);  //true

filter()和map()方法

filter():对数组中的每一项给定函数,返回值为true的项重新组成新的数组;

map():岁数组中的每一项给定函数,返回每一项调用这个函数的结果;

//数组中可以被2整除的数
var arr=[1,2,4,5,3,1];
var one=arr.filter(function(item,index,array){
 return (item%2==0);
});
console.log(one);  //[2, 4]

//数组中所有数的2倍
var two=arr.map(function(item,index,array){
 return (item*2);
});
console.log(two);  //[2, 4, 8, 10, 6, 2]

forEach()方法

forEach():对方法中的每一项运行给定函数。这个方法没有返回值;

var a = ['a', 'b', 'c'];

a.forEach(function(item,index,array) {
 console.log(item);
}); 
 // "a"
 // "b"
 // "c"

归并方法

reduce()和reduceRight()方法

var nums=[1,2,3,4,5];
 var sum=nums.reduce(function(prev,cur,index,array){
  return prev+cur;
 });
 alert(sum);  //15  第一次 prev:1;cur:2; 第二次: prev:3(1+2) cur:3 以此类推 
 
/******************************************************************************************/
 
 var nums=[1,2,3,4,5];
 var sum=nums.reduceRight(function(prev,cur,index,array){
  return prev+cur;
 });
 alert(sum);  //15  第一次 prev:5;cur:4; 第二次: prev:9(5+4) cur:3 以此类推

以上这篇详谈JS中数组的迭代方法和归并方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
抽出www.templatemonster.com的鼠标悬停加载大图模板的代码
Jul 11 Javascript
浅析onsubmit校验表单时利用ajax的return false无效问题
Jul 10 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
Nov 14 Javascript
JavaScript实现广告的关闭与显示效果实例
Jul 02 Javascript
不能不知道的10个angularjs英文学习网站
Mar 23 Javascript
jQuery Chosen通用初始化
Mar 07 Javascript
用js屏蔽被http劫持的浮动广告实现方法
Aug 10 Javascript
浅谈Angular4中常用管道
Sep 27 Javascript
纯JS实现出生日期[年月日]下拉菜单效果
Jun 01 Javascript
Vue登录主页动态背景短视频制作
Sep 21 Javascript
vue学习笔记之作用域插槽实例分析
Feb 01 Javascript
微信小程序对图片进行canvas压缩的方法示例详解
Nov 12 Javascript
原生js 封装get ,post, delete 请求的实例
Aug 11 #Javascript
laydate 显示结束时间不小于开始时间的实例
Aug 11 #Javascript
JS非空验证及邮箱验证的实例
Aug 11 #Javascript
vue如何获取点击事件源的方法
Aug 10 #Javascript
Vue单文件组件基础模板小结
Aug 10 #Javascript
基于JavaScript实现淘宝商品广告效果
Aug 10 #Javascript
Vue数组更新及过滤排序功能
Aug 10 #Javascript
You might like
声音就能俘获人心,蕾姆,是哪个漂亮小姐姐配音呢?
2020/03/03 日漫
PHP封装的HttpClient类用法实例
2015/06/17 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
2018/07/21 PHP
刷新页面实现方式总结(HTML,ASP,JS)
2008/11/13 Javascript
IE6下focus与blur错乱的解决方案
2011/07/31 Javascript
JavaScript打字小游戏代码
2011/12/26 Javascript
查找Oracle高消耗语句的方法
2014/03/22 Javascript
jQuery级联操作绑定事件实例
2014/09/02 Javascript
JS中的forEach、$.each、map方法推荐
2016/04/05 Javascript
jQuery模拟select实现下拉菜单功能
2016/06/20 Javascript
bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法
2017/02/10 Javascript
jQuery制作input提示内容(兼容IE8以上)
2017/07/05 jQuery
详解vue中组件参数
2018/07/09 Javascript
jQuery实现移动端下拉展现新的内容回弹动画
2020/06/24 jQuery
Pyramid Mako模板引入helper对象的步骤方法
2013/11/27 Python
Python读取mp3中ID3信息的方法
2015/03/05 Python
python实现指定字符串补全空格的方法
2015/04/30 Python
python魔法方法-属性转换和类的表示详解
2016/07/22 Python
简单的python协同过滤程序实例代码
2018/01/31 Python
python多进程使用及线程池的使用方法代码详解
2018/10/24 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
2019/07/22 Python
处理python中多线程与多进程中的数据共享问题
2019/07/28 Python
keras K.function获取某层的输出操作
2020/06/29 Python
自我评价的范文
2014/02/02 职场文书
五四青年节的活动方案
2014/08/20 职场文书
党支部创先争优活动总结
2014/08/28 职场文书
2014年社区计生工作总结
2014/11/18 职场文书
2015年宣传部部长竞选演讲稿
2014/11/28 职场文书
2015年教师节贺卡寄语
2015/03/24 职场文书
刘胡兰观后感
2015/06/16 职场文书
2015入党自传格式范文
2015/06/26 职场文书
2015年数学教研工作总结
2015/07/22 职场文书
读《钢铁是怎样炼成的》有感:百炼方成钢
2019/11/05 职场文书
python实现自动清理文件夹旧文件
2021/05/10 Python
Win11怎么启动任务管理器?Win11启动任务管理器的几种方法
2021/11/23 数码科技
Redis实现短信验证码登录的示例代码
2022/06/14 Redis