详谈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 相关文章推荐
javascript 学习笔记(onchange等)
Nov 14 Javascript
jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXML
Oct 16 Javascript
javascript返回顶部效果(自写代码)
Jan 06 Javascript
用JavaScript实现动画效果的方法
Jul 20 Javascript
jquery实现动态菜单的实例代码
Nov 28 Javascript
jquery插件pagination实现无刷新ajax分页
Sep 30 Javascript
js仿QQ邮箱收件人选择与搜索功能
Feb 10 Javascript
详解Vue微信公众号开发踩坑全记录
Aug 21 Javascript
解决layui中的form表单与button的点击事件冲突问题
Aug 15 Javascript
基于Web Audio API实现音频可视化效果
Jun 12 Javascript
js实现抽奖功能
Nov 24 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
Dec 14 Vue.js
原生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
十天学会php之第五天
2006/10/09 PHP
PHP中for循环语句的几种变型
2006/11/26 PHP
PHP 使用header函数设置HTTP头的示例解析 表头
2013/06/17 PHP
利用curl抓取远程页面内容的示例代码
2013/07/23 PHP
基于JQuery的密码强度验证代码
2010/03/01 Javascript
JavaScript类和继承 this属性使用说明
2010/09/03 Javascript
用js实现判断当前网址的来路如果不是指定的来路就跳转到指定页面
2011/05/02 Javascript
addEventListener 的用法示例介绍
2014/05/07 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
SWFUpload多文件上传及文件个数限制的方法
2016/05/31 Javascript
JS事件添加和移出的兼容写法示例
2016/06/20 Javascript
jquery一键控制checkbox全选、反选或全不选
2017/10/16 jQuery
JS+CSS实现滚动数字时钟效果
2017/12/25 Javascript
vue实现移动端轻量日期组件不依赖第三方库的方法
2019/04/28 Javascript
vue列表单项展开收缩功能之this.$refs的详解
2019/05/05 Javascript
微信小程序 确认框的实现(附代码)
2019/07/23 Javascript
vue + elementUI实现省市县三级联动的方法示例
2019/10/29 Javascript
微信小程序报错: thirdScriptError的错误问题
2020/06/19 Javascript
Python线程指南详细介绍
2017/01/05 Python
python中解析json格式文件的方法示例
2017/05/03 Python
在django中使用自定义标签实现分页功能
2017/07/04 Python
Python连接字符串过程详解
2020/01/06 Python
解决jupyter notebook 出现In[*]的问题
2020/04/13 Python
韩国家庭购物网上商店:Nsmall
2017/05/07 全球购物
俄罗斯厨房产品购物网站:COOK HOUSE
2021/03/15 全球购物
会计电算化专业毕业生求职信范文
2013/12/10 职场文书
详细的大学生创业计划书模板
2014/01/27 职场文书
面试后的英文感谢信
2014/02/01 职场文书
学生会干部自荐信
2014/02/04 职场文书
文言文辞职信
2015/02/28 职场文书
golang interface判断为空nil的实现代码
2021/04/24 Golang
常用的MongoDB查询语句的示例代码
2021/07/25 MongoDB
Python 类,对象,数据分类,函数参数传递详解
2021/09/25 Python
十大冰系宝可梦排名,颜值最高的阿罗拉九尾,第三使用率第一
2022/03/18 日漫
HTML静态页面获取url参数和UserAgent的实现
2022/08/05 HTML / CSS