JavaScript数组(2)---遍历/迭代方法 8种

最近工作中经常涉及到数据的处理,数组尤其常见,经常需要对其进行遍历、转换操作,网上的文章零零散散,不得已自己又找出红宝书来翻出来看,顺便记一笔,便于以后查询。

  • 数组常用的方法

ECMAScript5为数组定义了8个迭代方法。每个方法都接受两个参数:要在每一项上运行的函数fn和(可选的)运行该函数的作用域对象——影响 `this` 的值。

传入这些方法中的函数(fn)会接收3个参数:item 、index 、array; 如:

array.forEach(function(item,index,array){//do your staff here;
},this)

 

根据使用方法的不同,这个函数执行后的返回值,可能会/不会影响方法中的返回值。

  这5个迭代方法作用及返回值概览如下(末尾补充另外3个):

ECMAScript5 Array元素迭代方法
方法名方法作用 返回值
every()针对数组中每一项元素运行指定函数Boolean:若每一项都返回true,返回true;
filter()针对数组中每一项元素运行指定函数,Array:   返回函数运行返回true的元素组成的新数组
forEach()针对数组中每一项元素运行指定函数null:  无返回值
map()针对数组中每一项元素运行指定函数 Array:  返回函数运行后,得到到新新元素组成的新数组
some()针对数组中每一项元素运行指定函数Boolean: 若有任意一项执行函数后返回true, 则返回true

简单来说:

every() 、some() 方法适合用于对数组元素进行条件判断;

filter()  、map() 方法适合用于对数组进行条件筛选/再处理;

forEach() 方法对不对数组本身做操作,仅仅对数组元素的二次应用;

下面介绍下各个方法的使用栗子:

先来假设一个场景,你拿到了公司的本月工资清单,假设你的工资为9000;公司员工工资组成的数组为salaries=[8500,12000,9900,9000],

a. 想知道 你的工资是不是最低的;

b.想知道 有没有人和你工资一样多;

c.想知道  是不是所有人待遇都一样;

d.想      把大家的工资都换成K为单位的数据 

 1 var a,b,c,d;
 2 var your=9000;
 3 var salaries=[8500,12000,9900,9000];
 4  a=salaries.some(function(item,index,array){
 5    return  item<9000
 6 });
 7 console.log(a);//true;恭喜你,还有人比你工资更低
 8 
 9 
10 b=salaries.filter(function(item,index,array){
11    return item== your;
12 })
13 console.log(b);//[9000] 呵呵,有人跟你待遇一样
14 
15 c=salaries.every(function(item,index,array){
16    return item==your; 
17 });
18 console.log(c);//false .不是所有人都和你一样待遇哦
19 
20 d=salaries.map(function(item,index,array){
21    return item/1000 
22 });
23 console.log(d);//[8.5,12,9.9,9]

  PS:补充三个遗漏的方法

1.array.reduce(callback,[initalValue]):归并函数——对每个数组元素执行回调函数,返回最后一次调用结果值

    //此处回调函数有4个参数,其中第4个参数可选;即calback(accumulator,value,index,array,initalValue)

2.Array.find(callback[,thisArg]):查找函数——返回第一个通过测试的元素

3.Array.findIndex(callback[,Arg]):查找函数——返回第一个通过测试的元素的索引值

 

看完这些是否觉得以后再也不需要for循环了,那么看看下面这个坑吧:

[1,2,3].map(parseInt);//[1,NaN,NaN]//注意:
//1.Array.map(iterm,index,array)
//2.parseInt(value,base)

 

转载于:https://www.cnblogs.com/hbzyin/p/6493371.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/393615.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用例设计:思维导图orExcel

一、 某次紧急发版时使用思维导图来进行了用例的设计&#xff0c;很被导图多分支罗列、在单一分支上层层递进设计模式的吸引&#xff0c;最终看到由版本主题开枝散叶衍发出的结构性用例时非常开心。从此&#xff0c;几个版本的迭代都使用思维导图进行用例设计。 然而部门制度关…

class对象和class文件_Class文件格式

我们知道Java是一门跨平台的语言&#xff0c;我们编写的Java代码会被编译成中间class文件以让Java虚拟机解析运行。而Java虚拟机规范仅仅描述了抽象的Java虚拟机&#xff0c;在实现具体的Java虚拟机时&#xff0c;仅指出了设计规范。Java虚拟机的实现必须体现规范中的内容&…

2018计算机应用基础考试6,2018结构工程师《计算机应用基础》试题(6)

大家做好准备迎接2018考试了吗?出国留学网为您整理了“2018结构工程师《计算机应用基础》试题(6)”&#xff0c;跟着出国留学网来了解一下吧。要相信只要自己有足够的实力&#xff0c;无论考什么都不会害怕!2018结构工程师《计算机应用基础》试题(6)1、下列存储器中&#xff0…

leetcode1282. 用户分组(贪心算法)

有 n 位用户参加活动&#xff0c;他们的 ID 从 0 到 n - 1&#xff0c;每位用户都 恰好 属于某一用户组。给你一个长度为 n 的数组 groupSizes&#xff0c;其中包含每位用户所处的用户组的大小&#xff0c;请你返回用户分组情况&#xff08;存在的用户组以及每个组中用户的 ID&…

mysql解锁_mysql 解锁

show OPEN TABLES where In_use > 0;show processlist;show status like Table%;show status like %lock%;show OPEN TABLES where In_use > 0&#xff1b;//1.查看当前数据库锁表的情况SELECT * FROM information_schema.INNODB_TRX;//2.杀掉查询结果中锁表的trx_mysql_…

强制换行和禁止换行

强制换行&#xff1a;word-break: break-all; 只对英文起作用&#xff0c;以字母作为换行依据word-wrap: break-word; 只对英文起作用&#xff0c;以单词作为换行依据white-space: pre-wrap; 只对中文起作用&#xff0c;强制换行禁止换行&#xff1a;white-space: now…

构建自己的简单微服务架构(开源)

构建自己的简单微服务架构&#xff08;开源&#xff09; 原文:构建自己的简单微服务架构&#xff08;开源&#xff09;前言 本篇仅作引导&#xff0c;内容较多&#xff0c;如果阅读不方便&#xff0c;可以使用电脑打开我们的文档官网进行阅读。如下图所示&#…

职业生涯愿景计算机,职业生涯愿景

《职业生涯愿景》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《职业生涯愿景(10页珍藏版)》请在人人文库网上搜索。1、职业生涯愿景职业生涯愿景设备安装技术是掌握本专业必需的基本理论知识&#xff0c;具有设备制造、安装、调试、管理、设计。施工方案编制的专业技…

leetcode881. 救生艇(贪心算法加双指针)

第 i 个人的体重为 people[i]&#xff0c;每艘船可以承载的最大重量为 limit。 每艘船最多可同时载两人&#xff0c;但条件是这些人的重量之和最多为 limit。 返回载到每一个人所需的最小船数。(保证每个人都能被船载)。 示例 1&#xff1a; 输入&#xff1a;people [1,2]…

react避免子组件渲染_如何与React一起使用正确的方法来避免一些常见的陷阱

react避免子组件渲染One thing I hear quite often is “Let’s go for Redux” in our new React app. It helps you scale, and the App data shouldn’t be in React local state because it is inefficient. Or when you call an API and while the promise is pending, th…

[转载]Spring配置文件详解一:

2019独角兽企业重金招聘Python工程师标准>>> 原文地址&#xff1a;Spring配置文件详解一&#xff1a;<context:annotation-config/>与<context:component-scan base-package"com.xx 作者&#xff1a;爱情随遇而安 <context:annotation-config/>…

mysql 8.0.16修改root密码_mysql 8.0.16 winx64及Linux修改root用户密码 的方法

连接数据库等基础操作请自行解决哈&#xff0c;本篇是重点记录如何改密码。一、查询用户密码:查询用户密码命令&#xff1a;select host, user, authentication_string from mysql.user ;host&#xff1a;允许用户登录的ip‘位置%表示可以远程&#xff1b;user&#xff1a;当前…

舞台设计

舞台设计 #include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<cstdio> #include<queue> using namespace std;int ucol[1005],dcol[1005],lrow[1005],rrow[1005]; int numr[1005],numc[1005]; int a[100…

LoadRunner11支持的浏览器小结

LoadRunner11支持的浏览器小结转载于:https://www.cnblogs.com/zwh-Seeking/articles/11060154.html

手机计算机的隐藏小技巧,涨知识!MIUI计算器原来有这么多隐藏小技巧,最后一个绝对想不到...

原标题&#xff1a;涨知识&#xff01;MIUI计算器原来有这么多隐藏小技巧&#xff0c;最后一个绝对想不到计算器除了我们需要进行日常的计算以外&#xff0c;几乎是用不到的。但是MIUI中的计算器与普通计算器可不同&#xff0c;里面的隐藏小技巧足以让你震惊到&#xff0c;那么…

如何使用JavaScript中的工厂函数构建可靠的对象

Discover Functional JavaScript was named one of the best new Functional Programming books by BookAuthority!“发现功能JavaScript”被BookAuthority评为最佳新功能编程书籍之一 &#xff01; I suggest to take into consideration these ideas for building reliable …

leetcode99. 恢复二叉搜索树(优先队列)

二叉搜索树中的两个节点被错误地交换。请在不改变其结构的情况下&#xff0c;恢复这棵树。示例 1:输入: [1,3,null,null,2]1/3\2输出: [3,1,null,null,2]3/1\2代码 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* …

Android零基础入门第83节:Activity间数据传递方法汇总

2019独角兽企业重金招聘Python工程师标准>>> 在Activity间传递的数据一般比较简单&#xff0c;但是有时候实际开发中也会传一些比较复杂的数据&#xff0c;本节一起来学习更多Activity间数据的传递。 一、常用数据类型 在前面几节我们只学习了一些常用类型的数据传递…

mysql gz 安装_Linux下安装mysql 5.7.17.tar.gz的教程详解

1.创建MySQL组和mysql用户groupadd mysqluseradd -r -g mysql mysql2.拷贝&#xff1a;cp -R mysql-5.7.16-linux-glibc2.5-i686 /usr/local/mysql3.创建data目录mkdir /usr/local/mysql/data3.安装数据库切换到/usr/loca/mysql目录下cd /usr/local/mysql修改当前目录的所有者为…

02-c#基础之01-基础语法(一)

1.注释符 1&#xff09;注销 2) 解释 2.C#中的3种注释符 1&#xff09;单行注释// 2)多行注释/*要注释的内容*/ 3)文档注释///多用来解释类或者方法 2.VS中的快捷键 转载于:https://www.cnblogs.com/yoyo-524/p/6502827.html