详谈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 相关文章推荐
JS打印gridview实现原理及代码
Feb 05 Javascript
Struts2的s:radio标签使用及用jquery添加change事件
Apr 08 Javascript
使用jquery解析XML示例代码
Sep 05 Javascript
20条学习javascript的编程规范的建议
Nov 28 Javascript
JS使用ajax从xml文件动态获取数据显示的方法
Mar 24 Javascript
每天一篇javascript学习小结(RegExp对象)
Nov 17 Javascript
JavaScript字符串常用的方法
Mar 10 Javascript
jquery实现焦点轮播效果
Feb 23 Javascript
jQuery实现的鼠标拖动画矩形框示例【可兼容IE8】
May 17 jQuery
微信公众号获取用户地理位置并列出附近的门店的示例代码
Jul 25 Javascript
JavaScript实现密码强度实时验证
Mar 18 Javascript
vue自动添加浏览器兼容前后缀操作
Aug 13 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
巧用php中的array_filter()函数去掉多维空值的代码分享
2012/09/07 PHP
用 JavaScript 迁移目录
2006/12/18 Javascript
firefox插件Firebug的使用教程
2010/01/02 Javascript
IE中createElement需要注意的一个问题
2010/07/13 Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
2011/02/11 Javascript
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
javascript判断firebug是否开启的方法
2016/11/23 Javascript
Vue.js 2.0窥探之Virtual DOM到底是什么?
2017/02/10 Javascript
Angular.JS中指令ng-if的注意事项小结
2017/06/21 Javascript
详解vue数据渲染出现闪烁问题
2017/06/29 Javascript
iview给radio按钮组件加点击事件的实例
2017/09/30 Javascript
总结js中的一些兼容性易错的问题
2017/12/18 Javascript
angularJs利用$scope处理升降序的方法
2018/10/08 Javascript
postman自定义函数实现 时间函数的思路详解
2019/04/17 Javascript
深度了解vue.js中hooks的相关知识
2019/06/14 Javascript
VUE table表格动态添加一列数据,新增的这些数据不可以编辑(v-model绑定的数据不能实时更新)
2020/04/03 Javascript
vue组件系列之TagsInput详解
2020/05/14 Javascript
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
2020/09/22 Javascript
python使用xauth方式登录饭否网然后发消息
2014/04/11 Python
Selenium定时刷新网页的实现代码
2018/10/31 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
2019/08/27 Python
Python爬虫与反爬虫大战
2020/07/30 Python
scrapy redis配置文件setting参数详解
2020/11/18 Python
幼儿园家长评语大全
2014/04/16 职场文书
《金孔雀轻轻跳》教学反思
2014/04/20 职场文书
七一党日活动总结
2014/07/08 职场文书
党的群众路线教育实践活动对照检查材料(教师)
2014/09/24 职场文书
班级元旦晚会开幕词
2015/01/29 职场文书
2015年保险业务员工作总结
2015/05/27 职场文书
葬礼主持词
2015/07/02 职场文书
董事长致辞
2015/07/29 职场文书
业务员管理制度范本
2015/08/06 职场文书
宣传委员竞选稿
2015/11/19 职场文书
Python使用Kubernetes API访问集群
2021/05/30 Python
html5表单的required属性使用
2021/07/07 HTML / CSS
浅谈mysql哪些情况会导致索引失效
2021/11/20 MySQL