详谈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 相关文章推荐
翻译整理的jQuery使用查询手册
Mar 07 Javascript
jquery实现点击展开列表同时隐藏其他列表
Aug 10 Javascript
js判断手机号运营商的方法
Oct 23 Javascript
BootStrap文件上传样式超好看【持续更新】
May 10 Javascript
Jquery元素追加和删除的实现方法
May 24 Javascript
获取IE浏览器Cookie信息的方法
Jan 23 Javascript
JavaScript数据结构中栈的应用之表达式求值问题详解
Apr 11 Javascript
详解vue 配合vue-resource调用接口获取数据
Jun 22 Javascript
node实现简单的反向代理服务器
Jul 26 Javascript
在Angular中使用JWT认证方法示例
Sep 10 Javascript
使用mpvue搭建一个初始小程序及项目配置方法
Dec 03 Javascript
vue轮播组件实现$children和$parent 附带好用的gif录制工具
Sep 26 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 随机生成10位字符代码
2009/03/26 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
2016/03/18 PHP
PHP中多线程的两个实现方法
2016/10/14 PHP
js 巧妙去除数组中的重复项
2010/01/25 Javascript
预加载css或javascript的js代码
2010/04/23 Javascript
前后台交互过程中json格式如何解析以及如何生成
2012/12/26 Javascript
复选框全选与全不选操作实现思路
2013/08/18 Javascript
控制台报错object is not a function的解决方法
2014/08/24 Javascript
js实现星星打分效果的方法
2020/07/05 Javascript
浅谈javascript中for in 和 for each in的区别
2015/04/23 Javascript
jquery实现仿新浪微博带动画效果弹出层代码(可关闭、可拖动)
2015/10/12 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
2017/01/15 Javascript
深入浅析Nodejs的Http模块
2017/06/20 NodeJs
angular4自定义组件详解
2017/09/28 Javascript
基于ES6作用域和解构赋值详解
2017/11/03 Javascript
用React-Native+Mobx做一个迷你水果商城APP(附源码)
2017/12/25 Javascript
js数组去重的N种方法(小结)
2018/06/07 Javascript
js操作table中tr的顺序实现上移下移一行的效果
2018/11/22 Javascript
基于vue实现滚动条滚动到指定位置对应位置数字进行tween特效
2019/04/18 Javascript
详解搭建一个vue-cli的移动端H5开发模板
2020/01/17 Javascript
es6中new.target的作用和使用场景简单示例分析
2020/03/14 Javascript
MySQLdb ImportError: libmysqlclient.so.18解决方法
2014/08/21 Python
Python饼状图的绘制实例
2019/01/15 Python
python删除文件夹下相同文件和无法打开的图片
2019/07/16 Python
Python对接 xray 和微信实现自动告警
2019/09/17 Python
Python 线程池用法简单示例
2019/10/02 Python
Python requests模块cookie实例解析
2020/04/14 Python
Python 测试框架unittest和pytest的优劣
2020/09/26 Python
会计电算化专业个人的自我评价
2013/11/24 职场文书
表彰先进的通报
2014/01/31 职场文书
《三袋麦子》教学反思
2014/03/02 职场文书
餐厅保洁员岗位职责
2015/04/10 职场文书
珍爱生命主题班会
2015/08/13 职场文书
严以用权专题学习研讨会发言材料
2015/11/09 职场文书
Python 发送SMTP邮件的简单教程
2021/06/24 Python
Apache Hudi集成Spark SQL操作hide表
2022/03/31 Servers