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 实现的全选和反选
Apr 15 Javascript
document.addEventListener使用介绍
Mar 07 Javascript
js实现支持手机滑动切换的轮播图片效果实例
Apr 29 Javascript
详解JavaScript操作HTML DOM的基本方式
Oct 21 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
Apr 07 Javascript
js改变style样式和css样式的简单实例
Jun 28 Javascript
JavaScript 获取元素在父节点中的下标(推荐)
Jun 28 Javascript
vue 实现移动端键盘搜索事件监听
Nov 06 Javascript
如何使用webpack打包一个库library的方法步骤
Dec 18 Javascript
详解react组件通讯方式(多种)
May 06 Javascript
canvas 中如何实现物体的框选
Aug 05 Javascript
js基于div丝滑实现贝塞尔曲线
Sep 23 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使用curl判断网页404(不存在)的方法
2016/06/23 PHP
php cookie 详解使用实例
2016/11/03 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
PHP实现简单注册登录系统
2020/12/28 PHP
javascript下有关dom以及xml节点访问兼容问题
2007/11/26 Javascript
ASP Json Parser修正版
2009/12/06 Javascript
IE8 chrome中table隔行换色解决办法
2010/07/09 Javascript
javascript 使用 NodeList需要注意的问题
2013/03/04 Javascript
JavaScript插件化开发教程 (四)
2015/01/27 Javascript
JavaScript实现在标题栏上显示当前日期的方法
2015/03/19 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
2015/06/14 Javascript
基于vue实现分页/翻页组件paginator示例
2017/03/09 Javascript
ActiveX控件的使用-js实现打印超市小票功能代码详解
2017/11/22 Javascript
解决vue-cli创建项目的loader问题
2018/03/13 Javascript
JavaScript定时器使用方法详解
2020/03/26 Javascript
javascript实现电商放大镜效果
2020/11/23 Javascript
[02:56]DOTA2亚洲邀请赛 VG出场战队巡礼
2015/02/07 DOTA
Python打印scrapy蜘蛛抓取树结构的方法
2015/04/08 Python
在python里从协程返回一个值的示例
2019/02/19 Python
在Python中等距取出一个数组其中n个数的实现方式
2019/11/27 Python
python列表返回重复数据的下标
2020/02/10 Python
Django模型验证器介绍与源码分析
2020/09/08 Python
用Python进行websocket接口测试
2020/10/16 Python
浅谈盘点5种基于Python生成的个性化语音方法
2021/02/05 Python
html5实现多图片预览上传及点击可拖拽控件
2018/03/15 HTML / CSS
奇怪的鱼:Weird Fish
2018/03/18 全球购物
试解释COMMIT操作和ROLLBACK操作的语义
2014/07/25 面试题
文明青少年标兵事迹材料
2014/01/28 职场文书
遗体告别仪式主持词
2014/03/20 职场文书
冬季安全检查方案
2014/05/23 职场文书
心灵捕手观后感
2015/06/02 职场文书
情侣餐厅的创业计划书范本!
2019/07/26 职场文书
大学生暑期实践报告之企业经营管理
2019/08/08 职场文书
创业计划之特色精品店
2019/08/12 职场文书
成人成长感言如何写?
2019/08/16 职场文书
MySQL系列之十五 MySQL常用配置和性能压力测试
2021/07/02 MySQL