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 Validation插件remote验证方式的Bug解决
Jul 01 Javascript
按给定几率进行随机抽取的js代码
Dec 28 Javascript
JavaScript中的undefined学习总结
Nov 30 Javascript
javascript仿百度输入框提示自动下拉补全
Jan 07 Javascript
jQuery实现的调整表格行tr上下顺序
Jan 10 Javascript
原生js实现百叶窗效果及原理介绍
Apr 12 Javascript
jQuery解析返回的xml和json方法详解
Jan 05 Javascript
代码详解JS操作剪贴板
Feb 11 Javascript
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
May 13 Javascript
解决layui弹框失效的问题
Sep 09 Javascript
Vuex,iView UI面包屑导航使用扩展详解
Nov 04 Javascript
javascript Number 与 Math对象的介绍
Nov 17 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中数组的三种排序方法分享
2012/05/07 PHP
利用curl 多线程 模拟 并发的详解
2013/06/14 PHP
WAF的正确bypass
2017/01/05 PHP
Yii2.0实现生成二维码功能实例
2017/10/24 PHP
PHP+redis实现微博的推模型案例分析
2019/07/10 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
js实现按Ctrl+Enter发送效果
2014/09/18 Javascript
AngularJS入门教程中SQL实例详解
2016/07/27 Javascript
jquery表格datatables实例解析 直接加载和延迟加载
2016/08/12 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
2017/02/19 Javascript
BootStrap的两种模态框方式
2017/05/10 Javascript
简单谈谈require模块化jquery和angular的问题
2017/06/23 jQuery
JS switch判断 三目运算 while 及 属性操作代码
2017/09/03 Javascript
vue路由懒加载的实现方法
2018/03/12 Javascript
Vue.js 动态为img的src赋值方法
2018/03/14 Javascript
详解关于vue-area-linkage走过的坑
2018/06/27 Javascript
深入解析ES6中的promise
2018/11/08 Javascript
详解vue-cli@2.x项目迁移日志
2019/06/06 Javascript
js消除图片小游戏代码
2019/12/11 Javascript
通过实例解析javascript Date对象属性及方法
2020/11/04 Javascript
Python2.x中str与unicode相关问题的解决方法
2015/03/30 Python
举例讲解Python的Tornado框架实现数据可视化的教程
2015/05/02 Python
在Python中操作时间之strptime()方法的使用
2020/12/30 Python
实现python版本的按任意键继续/退出
2016/09/26 Python
python非递归全排列实现方法
2017/04/10 Python
Python 模拟登陆的两种实现方法
2017/08/10 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
python 常用日期处理-- datetime 模块的使用
2020/09/02 Python
工作中个人的自我评价
2013/12/31 职场文书
学校联谊活动方案
2014/02/15 职场文书
GMP办公室主任岗位职责
2014/03/14 职场文书
优秀的导游求职信范文
2014/04/06 职场文书
小学教师年度个人总结
2015/02/05 职场文书
2015年全民创业工作总结
2015/07/23 职场文书
学习党章心得体会2016
2016/01/15 职场文书