原生JS、jQuery 遍历方法总结

蒋奇
• 阅读 4278

一、原生JS: forEach()和map()遍历

共同点:

1.都是循环遍历数组中的每一项。

2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前项的索引index,原始数组input。

3.匿名函数中的this都是指Window。

4.只能遍历数组。

(1)、forEach() : 没有返回值

var arr = [12,23,24,42,1];
var res = arr.forEach(function (item,index,input) {
   input[index] = item*10;
})
console.log(res);//-->undefined;
console.log(arr);//-->会对原来的数组产生改变;

(2)、map() : 有返回值,可以return出来

var arr = [1,2,3,4,5];
var res = arr.map(function (item,index,input) {
    return item * 10;
})
console.log(res);//-->[10,20,30,40,50];
console.log(arr);//-->[1,2,3,4,5];

二、jQuery $.each()和$.map()遍历

共同点:

即可遍历数组,又可遍历对象。

(1)、$.each():没有返回值.支持的匿名函数有2个参数:如果遍历的是数组,i为当前项的索引,n为数组中的当前项。如果遍历的是对象,k 是键,n 是值。

//数组:i为索引,n为值
$.each( [1,2,3,4], function(i, n){
     console.log( i + ": " + n );
});

//对象:k为键名,n为值
$.each( { name: "John", lang: "JS" }, function(k, n){
 console.log(  k + ": "+ n );
});

(2)、$.map():有返回值,可以return 出来。支持匿名函数有2个参数(和$.each()里的参数位置相反):数组中的当前项n,当前项的索引i。如果遍历的是对象,i 是值,n 是键。

//数组:n为值,i为索引
var arr=$.map( [0,1,2], function(n,i){
     return n + 4;
});
console.log(arr);

//对象:n为值,k为键名
$.map({"name":"Jim","age":17},function(n,k){
     console.log(k+":"+n);
});
点赞
收藏
评论区
推荐文章
Dax Dax
4年前
js高频手写大全
1.手写instanceofinstanceof作用:判断一个实例是否是其父类或者祖先类型的实例。instanceof在查找的过程中会遍历左边变量的原型链,直到找到右边变量的prototype查找失败,返回false2.实现数组的map方法3.reduce实现数组的map方法4.手写数组的reduce方法reduce()方法接收一个函数作为累
Symbol卢 Symbol卢
4年前
js数组的遍历
js中数组的遍历1\.Map()方法Map映射的意思,可以看做是一个映射函数,所谓的映射。一个萝卜一个坑,一一对应的关系;语法:constarrArray();arr.map((item,index,arr)//函数体return;);//参数1:数组中的每一项(必选)//参数2:索引(可选)//参数3:当前遍历的数组本身(可选)//注
Karen110 Karen110
3年前
盘点JavaScript中数组遍历的全部方式(上篇)
前言JavaScript想必大家都不陌生了,其中的字符串和数组大家经常都会用到,今天就让我们来说说这里面的数组对象的遍历吧,因为遍历经常使用的缘故,所以小编带着大家来解锁遍历的所有方法,以便大家能够更深入的了解数组遍历,并在实际项目中灵活运用。一、Entries这个是ES6中提供的用于遍历数组的方法,它会返回一个遍历器对象,Entries是对键值对的遍历。
Wesley13 Wesley13
3年前
java中的HashMap和TreeMap
HashMap和TreeMap两者都是Map,java中的Map以键值对来存储数据,通过键key来索引值value。HashMap通过hashcode对其内容进行快速查找,其结果时无序的;TreeMap中的所有元素都默认进行了排序,所以当需要一个有序的结果时,使用TreeMap是比较方便的。具体的定义和遍历方法,可以看下面的例子:
Wesley13 Wesley13
3年前
java 基础知识
遍历遍历就是把这个数组的每个元素显示出来遍历的方法就是先定义这个数组的大小,然后用FOR循环来完成数组,例如doublescorenewdouble5;ScannerinputnewScanner(System.in);for(inti0;i<score.l
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Stella981 Stella981
3年前
JavaScript中遍历数组和对象的方法
js数组遍历和对象遍历针对js各种遍历作一个总结分析,从类型用处,分析数组和对象各种遍历使用场景,优缺点等JS数组遍历:1,普通for循环,经常用的数组遍历vararr1,2,0,3,9,10,20,
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
JS 对象数组Array 根据对象object key的值排序sort,很风骚哦
有个js对象数组varary\{id:1,name:"b"},{id:2,name:"b"}\需求是根据name或者id的值来排序,这里有个风骚的函数函数定义:function keysrt(key,desc) {  return function(a,b){    return desc ? ~~(ak
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(