详谈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 相关文章推荐
在线编辑器的实现原理(兼容IE和FireFox)
Mar 09 Javascript
js面向对象设计用{}好还是function(){}好(构造函数)
Oct 23 Javascript
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
Aug 14 Javascript
jQuery插件ajaxfileupload.js实现上传文件
Oct 23 Javascript
jQuery实现导航回弹效果
Feb 27 Javascript
Angularjs使用指令做表单校验的方法
Mar 31 Javascript
jQuery条件分页 代替离线查询(附代码)
Aug 17 jQuery
jQuery 实现鼠标画框并对框内数据选中的实例代码
Aug 29 jQuery
vue.js做一个简单的编辑菜谱功能
May 08 Javascript
微信小程序收藏功能的实现代码
Jun 12 Javascript
Vue使用NPM方式搭建项目
Oct 25 Javascript
three.js利用射线Raycaster进行碰撞检测
Mar 12 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
回首过去10年中最搞笑的10部动漫,哪一部让你节操尽碎?
2020/03/03 日漫
php下的原生ajax请求用法实例分析
2020/02/28 PHP
javaScript 判断字符串是否为数字的简单方法
2009/07/25 Javascript
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
判断浏览器的javascript版本的代码
2010/09/03 Javascript
js中的值类型和引用类型小结 文字说明与实例
2010/12/12 Javascript
浅析用prototype定义自己的方法
2013/11/14 Javascript
js定时调用方法成功后并停止调用示例
2014/04/08 Javascript
js中利用tagname和id获取元素的方法
2016/01/03 Javascript
jQuery validate插件功能与用法详解
2016/12/15 Javascript
大白话讲解JavaScript的Promise
2017/04/06 Javascript
超级简易的JS计算器实例讲解(实现加减乘除)
2017/08/08 Javascript
JavaScript中严格判断NaN的方法
2018/02/16 Javascript
[03:31]DOTA2英雄基础教程 大地之灵
2013/12/17 DOTA
[07:43]《辉夜杯》公开赛晋级外卡赛战队—TRG训练生活探秘
2015/12/11 DOTA
一篇不错的Python入门教程
2007/02/08 Python
将Django使用的数据库从MySQL迁移到PostgreSQL的教程
2015/04/11 Python
Python使用pygame模块编写俄罗斯方块游戏的代码实例
2015/12/08 Python
python3实现读取chrome浏览器cookie
2016/06/19 Python
基于python中staticmethod和classmethod的区别(详解)
2017/10/24 Python
Python实现图片滑动式验证识别方法
2017/11/09 Python
Python3中lambda表达式与函数式编程讲解
2019/01/14 Python
对Python3 pyc 文件的使用详解
2019/02/16 Python
Python3内置模块之json编解码方法小结【推荐】
2020/12/09 Python
详解pycharm连接不上mysql数据库的解决办法
2020/01/10 Python
周仰杰(JIMMY CHOO)英国官方网站:闻名世界的鞋子品牌
2018/10/28 全球购物
英国领先的独立时装店:Van Mildert
2019/10/28 全球购物
新闻学专业应届生求职信
2013/11/08 职场文书
学校出纳员岗位职责
2014/03/18 职场文书
“向国旗敬礼”活动策划方案(4篇)
2014/09/27 职场文书
德能勤绩廉个人总结
2015/02/14 职场文书
2015年小学开学寄语
2015/02/27 职场文书
2015年大学组织委员个人工作总结
2015/10/23 职场文书
Spring mvc是如何实现与数据库的前后端的连接操作的?
2021/06/30 Java/Android
python实现Nao机器人的单目测距
2021/09/04 Python
nginx设置资源请求目录的方式详解
2022/05/30 Servers