详谈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 相关文章推荐
单击按钮显示隐藏子菜单经典案例
Jan 04 Javascript
jquery获得keycode的示例代码
Dec 30 Javascript
Javascript的setTimeout()使用闭包特性时需要注意的问题
Sep 23 Javascript
轻松学习Javascript闭包函数
Dec 15 Javascript
详解Matlab中 sort 函数用法
Mar 20 Javascript
bootstrap实现的自适应页面简单应用示例
Mar 09 Javascript
vue中的计算属性的使用和vue实例的方法示例
Dec 04 Javascript
详解react-router 4.0 下服务器如何配合BrowserRouter
Dec 29 Javascript
浅析js中mvvm模式实现的原理
Oct 06 Javascript
微信小程序下拉框功能的实例代码
Nov 06 Javascript
一文快速详解前端框架 Vue 最强大的功能
May 21 Javascript
关于JS中的作用域中的问题思考分享
Apr 06 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_search()- 按元素值返回键名
2011/11/04 PHP
小议javascript 设计模式 推荐
2009/10/28 Javascript
jQuery 拖动层(在可视区域范围内)
2012/05/24 Javascript
jquery插件制作 提示框插件实现代码
2012/08/17 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
轻松创建nodejs服务器(9):实现非阻塞操作
2014/12/18 NodeJs
javascript中return,return true,return false三者的用法及区别
2015/11/17 Javascript
JS实现DIV容器赋值的方法
2015/12/14 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
2017/01/16 Javascript
使用jquery判断一个元素是否含有一个指定的类(class)实例
2017/02/12 Javascript
前端主流框架vue学习笔记第二篇
2017/07/26 Javascript
详解Node.js中的Async和Await函数
2018/02/22 Javascript
Angular6 写一个简单的Select组件示例
2018/08/20 Javascript
Vuejs开发环境搭建及热更新【推荐】
2018/09/07 Javascript
一文快速了解JQuery中的AJAX
2019/05/31 jQuery
微信小程序实现圆形进度条动画
2020/11/18 Javascript
Nuxt页面级缓存的实现
2020/03/09 Javascript
[50:28]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs KG
2018/04/01 DOTA
Python列表(list)、字典(dict)、字符串(string)基本操作小结
2014/11/28 Python
python集合是否可变总结
2019/06/20 Python
Python 200行代码实现一个滑动验证码过程详解
2019/07/11 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
2020/04/19 Python
Koral官方网站:女性时尚运动服
2019/04/10 全球购物
ORLY官网:美国专业美甲一线品牌
2019/12/11 全球购物
化工专业应届生求职信
2013/11/08 职场文书
高中生毕业学习总结的自我评价
2013/11/14 职场文书
办公室前台岗位职责范本
2013/12/10 职场文书
团日活动总结报告
2014/06/25 职场文书
小学生志愿者活动方案
2014/08/23 职场文书
2014年教师节红领巾广播稿
2014/09/10 职场文书
意外死亡赔偿协议书
2014/10/14 职场文书
2015年房产销售工作总结范文
2015/05/22 职场文书
详解盒子端CSS动画性能提升
2021/05/24 HTML / CSS
Spring Security中用JWT退出登录时遇到的坑
2021/10/16 Java/Android
使用Java去实现超市会员管理系统
2022/03/18 Java/Android