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 相关文章推荐
脚本吧 - 幻宇工作室用到js,超强推荐expand.js
Dec 23 Javascript
比较详细的javascript对象的property和prototype是什么一种关系
Aug 06 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
Jan 07 Javascript
jQuery实现的自动加载页面功能示例
Sep 04 Javascript
AngularJS 所有版本下载地址
Sep 14 Javascript
前端js实现文件的断点续传 后端PHP文件接收
Oct 14 Javascript
谈谈VUE种methods watch和compute的区别和联系
Aug 01 Javascript
SelectPage v2.4 发布新增纯下拉列表和关闭分页功能
Sep 07 Javascript
js实现HTML中Select二级联动的实例
Jan 05 Javascript
JS实现模糊查询带下拉匹配效果
Jun 21 Javascript
js 实现 list转换成tree的方法示例(数组到树)
Aug 18 Javascript
微信小程序之 catalog 切换实现解析
Sep 12 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类与对象中的private访问控制的疑问
2012/11/01 PHP
关于尾递归的使用详解
2013/05/02 PHP
PHP与Java进行通信的实现方法
2013/10/21 PHP
php+Mysqli利用事务处理转账问题实例
2015/02/11 PHP
js 页面刷新location.reload和location.replace的区别小结
2009/12/24 Javascript
jquery offset函数应用实例
2012/11/14 Javascript
jQuery制作简单柱状图实例
2015/01/28 Javascript
举例简介AngularJS的内部语言环境
2015/06/17 Javascript
JS+CSS实现自适应选项卡宽度的圆角滑动门效果
2015/09/15 Javascript
javascript实现倒计时跳转页面
2016/01/17 Javascript
JS中创建函数的三种方式及区别
2016/03/13 Javascript
angular forEach方法遍历源码解读
2017/01/25 Javascript
vue2.0 和 animate.css的结合使用
2017/12/12 Javascript
基于node下的http小爬虫的示例代码
2018/01/11 Javascript
vue嵌套路由与404重定向实现方法分析
2018/05/04 Javascript
Layui数据表格之获取表格中所有的数据方法
2018/08/20 Javascript
angular中子控制器向父控制器传值的实例
2018/10/08 Javascript
解决layui的radio属性或别的属性没显示出来的问题
2019/09/26 Javascript
bootstrap实现tab选项卡切换
2020/08/09 Javascript
[02:45]DOTA2英雄敌法师基础教程
2013/11/25 DOTA
[00:17]天涯墨客一技能展示
2018/08/25 DOTA
Python实现的计算马氏距离算法示例
2018/04/03 Python
python跳过第一行快速读取文件内容的实例
2018/07/12 Python
tensorflow查看ckpt各节点名称实例
2020/01/21 Python
Python多线程threading join和守护线程setDeamon原理详解
2020/03/18 Python
Python文本文件的合并操作方法代码实例
2020/03/31 Python
python输入中文的实例方法
2020/09/14 Python
详解css3中的伪类before和after常见用法
2020/11/17 HTML / CSS
html5 canvas里绘制椭圆并保持线条粗细均匀的技巧
2013/03/25 HTML / CSS
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
行政专员求职信范文
2014/05/03 职场文书
2014年副班长工作总结
2014/12/10 职场文书
正能量励志演讲稿三分钟(范文)
2019/07/11 职场文书
什么是检讨书?检讨书的格式及范文
2019/11/05 职场文书
python urllib库的使用详解
2021/04/13 Python
MySQL性能压力基准测试工具sysbench的使用简介
2021/04/21 MySQL