javaScript数组迭代方法详解


Posted in Javascript onApril 14, 2016

本文为大家介绍了javaScript数组迭代方法,供大家参考,具体内容如下

每个方法都接收两个参数:要在每一项上运行的函数  和  (可选的)运行该函数的作用域对象。

传入这些方法中的函数会接收三个参数:数组项的值,该项在数组中的位置,数组对象本身。

forEach()  对数组中的每一项运行 给定函数。该方法没有返回值。
every()  对数组中的每一项运行 给定函数,如果数组的每一项都返回true,则返回true。
some()  对数组中的每一项运行 给定函数,如果数组的任意一项返回true,则返回true。
fliter()  如果数组的每一项都返回true,则返回true。返回该函数会返回true的项组成的数组。
map()  如果数组的每一项都返回true,则返回true。返回每次函数调用的结果组成的数组。

请看以下例子:

var numbers = [1,2,3,4,5,4,3,2,1];
//every()
var everyResult = numbers.every(function(item, index, array){
 return (item > 2);
});
alert(everyResult); //false
//some()
var someResult = numbers.some(function(item, index, array){
 return (item > 2);
});
alert(someResult); //true
//filter()
var filterResult = numbers.filter(function(item, index, array){
 return (item > 2);
});
alert(filterResult); //[3,4,5,4,3]
//map()
var mapResult = numbers.map(function(item, index, array){
 return (item * 2);
});
alert(mapResult); //[2,4,6,8,10,8,6,4,2]
//forEach()
numbers.forEach(function(item, index, array){
 alert(item);
}); //多个弹窗分别显示数组中的元素

另一个javaScript数组迭代方法,如下

var arr = [3,4,5,6,7,"a"];

var isNum = function(elem,index,AAA){
return !isNaN(elem);
}

var toUpperCase = function(elem){
return String.prototype.toUpperCase.apply(elem);
}

var print = function(elem,index){
console.log(index+"."+elem);
}

/*对数组中的每一项执行测试函数,直到获得对指定的函数返回 false 的项。 使用此方法 可确定数组中的所有项是否满足某一条件,类似于&&的含义*/
var res = arr.every(isNum);
console.log(res);//false;

/*对数组中的每一项执行测试函数,直到获得返回 true 的项。 使用此方法确定数组中的所有项是否满足条件.类似于||的含义*/
res = arr.some(isNum);
console.log(res);//true

/*对数组中的每一项执行测试函数,并构造一个新数组,返回 true的项被添加进新数组。 如果某项返回 false,则新数组中将不包含此项*/
res = arr.filter(isNum);
console.log(res);//[3, 4, 5, 6, 7]

/*对数组中的每一项执行函数并构造一个新数组,并将原始数组中的每一项的函数结添加进新数组。*/
res = arr.map(toUpperCase);
console.log(res);//["3", "4", "5", "6", "7", "A"]

/*对数组中的每一项执行函数,不返回值*/
res = arr.forEach(print);
console.log(res);

 

 

//自己扩展

/*Array.prototype.every = function(fun,obj) {
var len = this.length;
if (typeof fun != "function")
throw new TypeError();
for (var i = 0; i < len; i++) {
if (!fun.call(obj,this[i], i,this))
return false;
}
return true;
};*/

以上就是本文的全部内容,希望对大家学习javaScript数组迭代方法有所帮助。

Javascript 相关文章推荐
jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXML
Oct 16 Javascript
jquery select动态加载选择(兼容各种浏览器)
Feb 01 Javascript
弹出最简单的模式化遮罩层的js代码
Dec 04 Javascript
javascript中加号(+)操作符的一些神奇作用
Jun 06 Javascript
JS实现网站菜单拖拽移位效果的方法
Sep 24 Javascript
在Linux系统中搭建Node.js开发环境的简单步骤讲解
Jan 26 Javascript
javascript输出AscII码扩展集中的字符方法
Dec 26 Javascript
浅谈Vue.nextTick 的实现方法
Oct 25 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
Nov 01 Javascript
jquery实现侧边栏左右伸缩效果的示例
Dec 19 jQuery
详解VUE2.X过滤器的使用方法
Jan 11 Javascript
VUE v-for循环中每个item节点动态绑定不同函数的实例
Sep 26 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
Dec 24 #Javascript
js贪吃蛇游戏实现思路和源码
Apr 14 #Javascript
JS跨域解决方案之使用CORS实现跨域
Apr 14 #Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
Apr 14 #Javascript
Seajs 简易文档 提供简单、极致的模块化开发体验
Apr 13 #Javascript
原生js编写autoComplete插件
Apr 13 #Javascript
JS中的eval 为什么加括号
Apr 13 #Javascript
You might like
php实现数组中索引关联数据转换成json对象的方法
2015/07/08 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
Extjs4 GridPanel 的几种样式使用介绍
2013/04/18 Javascript
Javascript中各种trim的实现详细解析
2013/12/10 Javascript
node.js中的path.delimiter方法使用说明
2014/12/09 Javascript
jQuery 和 CSS 的文本特效插件集锦
2014/12/12 Javascript
jQuery中serializeArray()与serialize()的区别实例分析
2015/12/09 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
2016/01/28 Javascript
JS实现左右无缝轮播图代码
2016/05/01 Javascript
JS平滑无缝滚动效果的实现代码
2016/05/06 Javascript
Angularjs过滤器使用详解
2016/05/25 Javascript
js select实现省市区联动选择
2020/04/17 Javascript
JavaScript中的ajax功能的概念和示例详解
2016/10/17 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
2017/05/04 Javascript
javascript实现抢购倒计时程序
2019/08/26 Javascript
VUE项目初建和常见问题总结
2019/09/12 Javascript
[54:25]Ti4 循环赛第三日LGD vs MOUZ
2014/07/12 DOTA
[02:32]【DOTA2亚洲邀请赛】iceice,梦开始的地方
2017/03/13 DOTA
[51:06]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS Liquid
2018/03/30 DOTA
python difflib模块示例讲解
2017/09/13 Python
python用列表生成式写嵌套循环的方法
2018/11/08 Python
python绘制分布折线图的示例
2020/09/24 Python
利用CSS3动画实现圆圈由小变大向外扩散的效果实例
2018/09/10 HTML / CSS
HTML5中外部浏览器唤起微信分享
2020/01/02 HTML / CSS
世界上最大的曲棍球商店:Pro Hockey Life
2017/10/30 全球购物
留学推荐信中文范文三篇
2014/01/25 职场文书
全民健身日活动方案
2014/01/29 职场文书
工程售后服务承诺书
2014/05/21 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
英语复习计划
2015/01/19 职场文书
求职自荐信范文(优秀篇)
2015/03/27 职场文书
《风娃娃》教学反思
2016/02/18 职场文书
幼儿园教学反思范文
2016/03/02 职场文书
2019年最新感恩节祝福语(28句)
2019/11/27 职场文书
微信小程序中wxs文件的一些妙用分享
2022/02/18 Javascript
Go结合Gin导出Mysql数据到Excel表格
2022/08/05 Golang