详谈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 混合的构造函数和原型方式,动态原型方式
Dec 07 Javascript
Jquery Ajax学习实例5 向WebService发出请求,返回泛型集合数据的异步调用
Mar 17 Javascript
解析javascript 浏览器关闭事件
Jul 08 Javascript
javascript去掉前后空格的实例
Nov 07 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
Jun 03 Javascript
你所未知的3种Node.js代码优化方式
Feb 25 Javascript
百度地图给map添加右键菜单(判断是否为marker)
Mar 04 Javascript
jQuery实现根据滚动条位置加载相应内容功能
Jul 18 Javascript
javascript 中的事件委托详解
Oct 25 Javascript
详解关于react-redux中的connect用法介绍及原理解析
Sep 11 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
Jan 08 Javascript
写一个Vue Popup组件
Feb 25 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/02 国漫
在任意字符集下正常显示网页的方法一
2007/04/01 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
2020/04/06 PHP
JavaScript入门教程(12) js对象化编程
2009/01/31 Javascript
JQuery 无废话系列教程(二) jquery实战篇上
2009/06/23 Javascript
jQuery中获取checkbox选中项等操作及注意事项
2013/11/24 Javascript
js与jquery获取父元素,删除子元素的两种不同方法
2014/01/09 Javascript
Node.js实现在目录中查找某个字符串及所在文件
2014/09/03 Javascript
无限树Jquery插件zTree的常用功能特性总结
2014/09/11 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
2016/01/26 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
2016/07/15 Javascript
浅谈JavaScript异步编程
2017/01/20 Javascript
Vue2.0利用vue-resource上传文件到七牛的实例代码
2017/07/28 Javascript
JS中利用FileReader实现上传图片前本地预览功能
2018/03/02 Javascript
Vue 将后台传过来的带html字段的字符串转换为 HTML
2018/03/29 Javascript
浅谈从React渲染流程分析Diff算法
2018/09/08 Javascript
[00:19]CN DOTA NEVER DIE!VG夺冠rOtK接受采访
2019/12/23 DOTA
Python爬取数据并写入MySQL数据库的实例
2018/06/21 Python
python十进制和二进制的转换方法(含浮点数)
2018/07/07 Python
python使用itchat模块给心爱的人每天发天气预报
2019/11/25 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
2020/05/23 Python
详解Python 最短匹配模式
2020/07/29 Python
python的数学算法函数及公式用法
2020/11/18 Python
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
Lookfantastic葡萄牙官方网站:欧洲第一大化妆品零售商
2018/03/17 全球购物
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
项目投资意向书
2014/04/01 职场文书
高中校园广播稿3篇
2014/09/29 职场文书
2014年工作总结与下年工作计划
2014/11/27 职场文书
学生逃课检讨书
2015/02/17 职场文书
个人工作能力自我评价
2015/03/05 职场文书
《我们的民族小学》教学反思
2016/02/19 职场文书
导游词之上海杜莎夫人蜡像馆
2019/11/22 职场文书
js中Object.create实例用法详解
2021/10/05 Javascript
Win11软件图标固定到任务栏
2022/04/19 数码科技
V Rising 服务器搭建图文教程
2022/06/16 Servers