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 相关文章推荐
javascript 另一种图片滚动切换效果思路
Apr 20 Javascript
js仿百度有啊通栏展示效果实现代码
May 28 Javascript
javascript图片相似度算法实现 js实现直方图和向量算法
Jan 14 Javascript
javascript页面上使用动态时间具体实现
Mar 18 Javascript
JavaScript检测弹出窗口是否已经关闭的方法
Mar 24 Javascript
实例解析jQuery中proxy()函数的用法
May 24 Javascript
Javascript实现汉字和拼音互转的终极方案
Oct 19 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
Jan 06 Javascript
微信小程序 开发之全局配置
May 05 Javascript
JavaScript实现body内任意节点的自定义属性功能示例
Sep 18 Javascript
迅速了解一下ES10中Object.fromEntries的用法使用
Mar 05 Javascript
Angular中innerHTML标签的样式不起作用的原因解析
Jun 18 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
法国:浪漫之都的咖啡文化
2021/03/03 咖啡文化
apache rewrite_module模块使用教程
2008/01/10 PHP
深入PHP empty(),isset(),is_null()的实例测试详解
2013/06/06 PHP
php输出xml属性的方法
2015/03/19 PHP
PHP常用函数之根据生日计算年龄功能示例
2019/10/21 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
window.print打印指定div指定网页指定区域的方法
2014/08/04 Javascript
浅析js预加载/延迟加载
2014/09/25 Javascript
jQuery实现带有动画效果的回到顶部和底部代码
2015/11/04 Javascript
jQuery插件实现多级联动菜单效果
2015/12/01 Javascript
基于jquery实现页面滚动到底自动加载数据的功能
2015/12/19 Javascript
javascript 数组的正态分布排序的问题
2016/07/31 Javascript
Vue.js实现微信过渡动画左右切换效果
2017/06/13 Javascript
关于 angularJS的一些用法
2017/11/29 Javascript
js动态引入的四种方法
2018/05/05 Javascript
Vuex 使用 v-model 配合 state的方法
2018/11/13 Javascript
js实现删除li标签一行内容
2019/04/16 Javascript
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
2020/09/01 Javascript
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
零基础写python爬虫之神器正则表达式
2014/11/06 Python
Python中实现从目录中过滤出指定文件类型的文件
2015/02/02 Python
如何利用python查找电脑文件
2018/04/27 Python
python实现自动化上线脚本的示例
2019/07/01 Python
代码实例讲解python3的编码问题
2019/07/08 Python
Python datetime模块使用方法小结
2020/06/18 Python
Python中使用aiohttp模拟服务器出现错误问题及解决方法
2020/10/31 Python
Python爬取某平台短视频的方法
2021/02/08 Python
浅析与CSS3的loading动画加载相关的transition优化
2015/05/18 HTML / CSS
香蕉共和国加拿大官网:Banana Republic加拿大
2018/08/06 全球购物
澳大利亚足球鞋和服装购物网站:Ultra Football
2018/10/11 全球购物
L*SPACE官网:比基尼、泳装和度假服装
2019/03/18 全球购物
慕尼黑山地运动、户外服装和体育用品专家:Sporthaus Schuster
2019/08/27 全球购物
大学生职业生涯规划范文
2014/01/08 职场文书
教师试用期自我鉴定
2014/02/12 职场文书
2014年控辍保学工作总结
2014/12/08 职场文书
python实现大文本文件分割成多个小文件
2021/04/20 Python