详谈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 location.replace与location.reload的区别
Sep 08 Javascript
JavaScript 参数中的数组展开 [译]
Sep 21 Javascript
js控制鼠标事件移动及移出效果显示
Oct 19 Javascript
jQuery中的jQuery()方法用法分析
Dec 27 Javascript
AngularJS 依赖注入详解及示例代码
Aug 17 Javascript
jstree创建无限分级树的方法【基于ajax动态创建子节点】
Oct 25 Javascript
小程序实现抽奖动画
Apr 16 Javascript
详解 微信小程序开发框架(MINA)
May 17 Javascript
微信小程序登录态和检验注册过没的app.js写法
May 22 Javascript
微信小程序使用蓝牙小插件
Sep 23 Javascript
基于JS判断对象是否是数组
Jan 10 Javascript
javascript实现简单页面倒计时
Mar 02 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测试程序运行时间的类
2012/02/05 PHP
解析thinkphp中的导入文件标签
2013/06/20 PHP
PHP7匿名类用法分析
2016/09/26 PHP
PHP接口并发测试的方法(推荐)
2016/12/15 PHP
获取DOM对象的几种扩展及简写
2006/10/09 Javascript
bgsound 背景音乐 的一些常用方法及特殊用法小结
2010/05/11 Javascript
jquery 表格排序、实时搜索表格内容(附图)
2014/05/19 Javascript
JavaScript实现按Ctrl键打开新页面
2014/09/04 Javascript
javascript实现滑动解锁功能
2014/12/31 Javascript
jQuery选择id属性带有点符号元素的方法
2015/03/17 Javascript
JavaScript 总结几个提高性能知识点(推荐)
2017/02/20 Javascript
JS使用插件cryptojs进行加密解密数据实例
2017/05/11 Javascript
react脚手架如何配置less和ant按需加载的方法步骤
2018/11/28 Javascript
iview实现select tree树形下拉框的示例代码
2018/12/21 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
监听element-ui table滚动事件的方法
2019/03/26 Javascript
微信小程序下拉框搜索功能的实现方法
2019/07/31 Javascript
js实现指定时间倒计时效果
2019/08/26 Javascript
vue canvas绘制矩形并解决由clearRec带来的闪屏问题
2019/09/02 Javascript
JS中的const命令你真懂它吗
2020/03/08 Javascript
js数组的基本使用总结
2021/01/18 Javascript
Python MD5加密实例详解
2017/08/02 Python
详解python使用Nginx和uWSGI来运行Python应用
2018/01/09 Python
python打包生成的exe文件运行时提示缺少模块的解决方法
2018/10/31 Python
Django ManyToManyField 跨越中间表查询的方法
2018/12/18 Python
Django使用消息提示简单的弹出个对话框实例
2019/11/15 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
2020/05/23 Python
Shopee马来西亚:随拍即卖,最佳行动电商拍卖平台
2017/06/05 全球购物
英国网上自行车商店:Tredz Bikes
2019/10/29 全球购物
中专毕业生自荐信
2013/11/16 职场文书
搞笑爱情保证书
2014/04/29 职场文书
晚会闭幕词
2015/01/28 职场文书
服务员岗位职责范本
2015/04/09 职场文书
入党积极分子群众意见
2015/06/01 职场文书
红高粱观后感
2015/06/10 职场文书
如何用Python搭建gRPC服务
2021/06/30 Python