JS的forEach和map方法的区别,还有一个$each

作者&投稿:妫常 (若有异议请与网页底部的电邮联系)
和map方法的区别,还有一个$each~

orEach()和map()两个方法都是ECMA5中Array引进的新方法,主要作用是对数组的每个元素执行一次提供的函数,但是它们之间还是有区别的。jQuery也有一个方法$.each(),长得和forEach()有点像,功能也类似。但是从本质上还是有很大的区别的,那么我们探探究竟。
一、forEach和map语法
语法:

//forEach

array.forEach(callback(currentValue, index, array){
//do something
}, this)

//或者
array.forEach(callback(currentValue, index, array){
//do something
})  

//map:
var new_array = arr.map(callback[, thisArg]) 

//$.each()
$(selector).each(function(index,element)) //注意参数的顺序

callback: 为数组中每个元素执行的函数,该函数接收三个参数,
参数一:当前数组中元素;参数二:索引; 参数三:当前数组。
this:可选,执行会掉时候,this的指向。
二、区别
2.1、forEach()返回值是undefined,不可以链式调用。
2.2、map()返回一个新数组,原数组不会改变。
2.3、没有办法终止或者跳出forEach()循环,除非抛出异常,所以想执行一个数组是否满足什么条件,返回布尔值,可以用一般的for循环实现,或者用Array.every()或者Array.some();
2.4、$.each()方法规定为每个匹配元素规定运行的函数,可以返回 false 可用于及早停止循环。

orEach()和map()两个方法都是ECMA5中Array引进的新方法,主要作用是对数组的每个元素执行一次提供的函数,但是它们之间还是有区别的。jQuery也有一个方法$.each(),长得和forEach()有点像,功能也类似。但是从本质上还是有很大的区别的,那么我们探探究竟。
一、forEach和map语法
语法:

//forEach

array.forEach(callback(currentValue, index, array){
//do something
}, this)

//或者
array.forEach(callback(currentValue, index, array){
//do something
})  

//map:
var new_array = arr.map(callback[, thisArg]) 

//$.each()
$(selector).each(function(index,element)) //注意参数的顺序



callback: 为数组中每个元素执行的函数,该函数接收三个参数,
参数一:当前数组中元素;参数二:索引; 参数三:当前数组。
this:可选,执行会掉时候,this的指向。
二、区别
2.1、forEach()返回值是undefined,不可以链式调用。
2.2、map()返回一个新数组,原数组不会改变。
2.3、没有办法终止或者跳出forEach()循环,除非抛出异常,所以想执行一个数组是否满足什么条件,返回布尔值,可以用一般的for循环实现,或者用Array.every()或者Array.some();
2.4、$.each()方法规定为每个匹配元素规定运行的函数,可以返回 false 可用于及早停止循环。

forEach()和map()两个方法都是ECMA5中Array引进的新方法,主要作用是对数组的每个元素执行一次提供的函数,但是它们之间还是有区别的。jQuery也有一个方法$.each(),长得和forEach()有点像,功能也类似。但是从本质上还是有很大的区别的,那么我们探探究竟。
一、forEach和map语法
语法:
//forEach
array.forEach(callback(currentValue, index, array){
//do something
}, this)
//或者
array.forEach(callback(currentValue, index, array){
//do something
})  
//map:
var new_array = arr.map(callback[, thisArg]) 
//$.each()
$(selector).each(function(index,element)) //注意参数的顺序
callback: 为数组中每个元素执行的函数,该函数接收三个参数,
参数一:当前数组中元素;参数二:索引; 参数三:当前数组。
this:可选,执行会掉时候,this的指向。
二、区别
2.1、forEach()返回值是undefined,不可以链式调用。
2.2、map()返回一个新数组,原数组不会改变。
2.3、没有办法终止或者跳出forEach()循环,除非抛出异常,所以想执行一个数组是否满足什么条件,返回布尔值,可以用一般的for循环实现,或者用Array.every()或者Array.some();
2.4、$.each()方法规定为每个匹配元素规定运行的函数,可以返回 false 可用于及早停止循环。
三、经典例子
3.1 在使用forEach()时候,如果数组在迭代的视乎被修改,
则其他元素会被跳过。因为 forEach()不会在迭代之前创建数组的副本。
3.2反转字符串
var str = '12345';
Array.prototype.map.call(str, function(x) { //同时利用了call()方法
return x;
}).reverse().join('');
3.3一个笔试题。
1
["1", "2", "3"].map(parseInt); //结果 [1, NaN, NaN]   
如果想得到[1, 2,3]应该这么做
function returnInt(element){
return parseInt(element,10);
}
["1", "2", "3"].map(returnInt);  
这主要是因为 parseInt()默认有两个参数,第二个参数是进制数。当parsrInt没有传入参数的时候,而map()中的回调函数时候,会给它传三个参数,第二个参数就是索引,明显不正确,所以返回NaN了。
3.4....
四、兼容性
forEach()和map()是ECMA5新引入的,可能在标准的其他实现中不存在,在使用前可以要Ployfill一下。
具体网上很多吧,更多的是在ie9以下,如果你的项目无视这些,那么你可以不care。

forEach()和map()两个方法都是ECMA5中Array引进的新方法,主要作用是对数组的每个元素执行一次提供的函数,但是它们之间还是有区别的。jQuery也有一个方法$.each(),长得和forEach()有点像,功能也类似。但是从本质上还是有很大的区别的,那么我们探探究竟。

一、forEach和map语法

语法:

//forEach
array.forEach(callback(currentValue, index, array){
    //do something
}, this)
 
//或者
array.forEach(callback(currentValue, index, array){
    //do something
})  
 
//map:
var new_array = arr.map(callback[, thisArg]) 
 
//$.each()
$(selector).each(function(index,element))  //注意参数的顺序

callback: 为数组中每个元素执行的函数,该函数接收三个参数,

参数一:当前数组中元素;参数二:索引; 参数三:当前数组。

this:可选,执行会掉时候,this的指向。

二、区别

2.1、forEach()返回值是undefined,不可以链式调用。

2.2、map()返回一个新数组,原数组不会改变。

2.3、没有办法终止或者跳出forEach()循环,除非抛出异常,所以想执行一个数组是否满足什么条件,返回布尔值,可以用一般的for循环实现,或者用Array.every()或者Array.some();

2.4、$.each()方法规定为每个匹配元素规定运行的函数,可以返回 false 可用于及早停止循环。



参考如下:假设有一个数组,每个元素是一个人。面前站了一排人。foreach就是按顺序一个一个跟他们做点什么,具体做什么,随便:people.forEach(function(dude){dude.pickUpSoap();});map就是手里拿一个盒子(一个新的数组),一个一个叫他们把钱包扔进去。结束的时候获得了一个新的数组,里面是大家的钱包,钱包的顺序和人的顺序一一对应。varwallets=people.map(function(dude){returndude.wallet;});reduce就是拿着钱包,一个一个数过去看里面有多少钱啊?每检查一个,就和前面的总和加一起来。这样结束的时候就知道大家总共有多少钱了。vartotalMoney=wallets.reduce(function(countedMoney,wallet){returncountedMoney+wallet.money;},0);


java中for each的用法
for (String x : list) { System.out.println(x);} \/\/将ArrayList转换为数组 Object s[] = list.toArray();\/\/利用froeach语句输出集合元素 System.out.println("---2---froeach语句输出集合转换而来的数组元素");for (Object x : s) { System.out.println(x.toString()); \/\/逐个输出...

for循环 switch foreach用法合区别
使用foreach:for(String s1:s){ System.out.println(s1);} 简单的说for是必须自己指定循环次数,foreach不需要,它会一次遍历数组或者集合元素。switch是条件语句,它与if的区别是方便进行多条件判断:下面实现的是:判断数组的第二个元素,如果是孙悟空就打印出孙悟空,如果输猪八戒就打印出猪八戒。。

java 编写一个程序,输入3个整数,然后程序将对这三个整数按照从大到小...
可以实现比较器Comparator来定制排序方案,同时使用Colletions.sort的方式进行排序,代码如下:public void sortDesc(List<Long> s){Collections.sort(s, new Comparator<Long>() {public int compare(Long o1, Long o2) {Long result = o2 - o1;return result.intValue();}});s.forEach(item->{...

foreach可以用于遍历二维数组吗?
可以,像这种形式。foreach($array as $key=>$value){ foreach($value as $skey=>$svalue){ echo $svalue;\/\/$svalue 就是你要的二维数组结果。} } 没有时间给你检查,你去试试。

ObservableCollection和List的区别总结
可以采用如下的方法:(使用你例子里的变量进行说明) ObservableCollection oc = new ObservableCollection(); s.ForEach(x => oc.Add(x)); 这样就能转换了

forEach怎么退出循环
return.public function myfun(){ foreach($datas as $item){ if($item == 'over'){ return; }else{ todo... } }}

c#编程:从键盘输入一个字符串,用foreach语句实现所有非数字字符的输出...
c2 descending select c2).ToList(); \/\/查找结果并排序 也可以用循环来做 v.ForEach(s => Console.Write(s + " ")); \/\/循环打印 Console.WriteLine("\\n---");List<StudentFenshu> Lsf = new List<StudentFenshu>();

jsp foreach如何使用
text\/css" href="styles.css"> --> <\/head> <body> < List list = new ArrayList();list.add("test1");list.add("test2");request.setAttribute("list",list);> <c:forEach items="${list}" var="s"> <c:out value="${s}"><\/c:out> <\/c:forEach> <\/body> <\/html> ...

jsp页面,使用forEach,结果只显示一条数据,实际上有10多条,研究半天了...
前台代码是没有问题的,建议你在后台打个断点,看一下slist的长度。或者你syso(slist.size())看一下长度,确定你取到了10条。

.net怎样获取foreach 当前的循环次数
要设置个变量 int index=0;string[] MyDataa=s.Split(new char[1]{','});foreach(string Mydata in MyDatas){ if (index==0) \/\/index==0 即为初次循环 ...index++;}

洪湖市18463813830: JS的forEach和map方法的区别,还有一个$each -
倪易银杏: forEach()和map()两个方法都是ECMA5中Array引进的新方法,主要作用是对数组的每个元素执行一次提供的函数,但是它们之间还是有区别的.jQuery也有一个方法$.each(),长得和forEach()有点像,功能也类似.但是从本质上还是...

洪湖市18463813830: 原生JS forEach和map遍历的区别以及兼容写法 -
倪易银杏: 一、原生JS forEach()和map()遍历 共同点:1.都是循环遍历数组中的每一项.2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前项的索引index,原始数组input.3.匿名函数中的this都是指...

洪湖市18463813830: 请叫ReactJS 中的map方法 和 forEach方法有什么区别 -
倪易银杏: Map map = new TreeMap();和Map map=new TreeMap();这两个的区别是前一种形式指明Map中存放的类型key和value都是String类型的,其他形式的放入Map中会提示错误.而后一种是Map中的key和value可以是任意类型对象,可以既把String类型的放入也可以

洪湖市18463813830: js中的 map,foreach,reduce 之间有什么区别么 -
倪易银杏: forEach: 对数组中每一个元素都运行函数,该方法没有返回值.如果你想对数据里的每一个元素进行处理,可以采用forEach来替换 for循环 map:对数组中每一个元素都运行函数, 返回由每次函数执行的结果组成的数组.果你想对数据里的每...

洪湖市18463813830: 如何形象地解释 JavaScript 中 map,foreach,reduce 间的区别 -
倪易银杏: map和foreach类似,都是遍历输出结果,只是方式不太一样,map直接对整个列表数据进行函数操作;而foreach是迭代对每行数据进行逐一操作,foreach灵活性更好吧,map效率更好点儿.为什么reduce最后说呢.因为上面两个基本一样,你也可以混着用,但是reduce差别就大了,这是一个二元操作,就是对给定列表中的数据两个两个的进行每次的操作,调用的函数类似这样hex(x,y)

洪湖市18463813830: js数组遍历的常用的几种方法以及差异和性能优化 -
倪易银杏: <script type="text/javascript">/*对比:1、map速度比foreach快2、map会返回一个新数组,不对原数组产生影响,foreach不会产生新数组,foreach返回undefined3、map因为返回数组所以可以链式操作,foreach不能4, map里可以用return ,...

洪湖市18463813830: JS中几种包含for的遍历方式 -
倪易银杏: 数组的常用遍历方法常用有:for、map、forEach let arr = [1,2,3,4,5]; arr.forEach((i)=>{console.log(i);//1 2 3 4 5}); }let arr = ['a','b','c','d']; let newArr = arr.map((val,key)=>{if(val=='c'){return val; } }); console.log(newArr);//[undefined,undefined,'c',...

洪湖市18463813830: js几种for循环的几种用法 -
倪易银杏: 第一种:普通for循环123 for(j = 0; j < arr.length; j++) { } 第二种:优化版for循环123 for(j = 0,len=arr.length; j < len; j++) { } 第三种:弱化版for循环123 for(j = 0; arr[j]!=null; j++) { } 第四种:foreach循环123 arr.forEach(function(e){ }); 第五种:...

洪湖市18463813830: js foreach只能遍历数组吗 -
倪易银杏: •高级浏览器支持forEach方法语法:forEach和map都支持2个参数:一个是回调函数(item,index,list)和上下文;•forEach:用来遍历数组中的每一项;这个方法执行是没有返回值的,对原来数组也没有影响;•数组中有几项,那么传递进去...

洪湖市18463813830: jquery中.map与each的区别?
倪易银杏: 在each方法是要成为一个不可改变的迭代器,map的方法可以作为一个迭代器,但实际是为了操纵提供的数组并返回一个新数组.另一个重要的一点要注意的是, each函数返回原来的阵列,而map函数返回一个新的数组..如果你过度使用map的函数的返回值可以潜在地浪费了大量的内存.还可以使用map功能从数组中删除一个项目 map()调用的函数的每个元素,并存储返回的结果在一个新的数组. 你通常只需要使用回调函数的第一个参数.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网