for循环,foreach, map,reduce用法对比+for in,for of

for不做赘述,相当简单;

foreach方法

forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。

注意: forEach() 对于空数组是不会执行回调函数的。

array.forEach(function(currentValue, index, arr), thisValue)

map() :

map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

map() 方法按照原始数组元素顺序依次处理元素。

注意: map() 不会对空数组进行检测。

注意: map() 不会改变原始数组。

array.map(function(currentValue,index,arr), thisValue)

由以上可见:foreach, map参数是完全相同的

reduce() :

reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值并返回。

reduce() 可以作为一个高阶函数,用于函数的 compose。

注意: reduce() 对于空数组是不会执行回调函数的。

array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

for in;for of:

for in

用for in的方遍历数组

    for(let index in array) {
        console.log(index,array[index]);
    };

用for in不仅可以对数组,也可以对enumerable对象操作

var A = {a:1,b:2,c:3,d:"hello world"};
for(let k in A) {
    console.log(k,A[k]);
} 

for of

在ES6中,增加了一个for of循环,使用起来很简单

for(let v of array) {
    console.log(v);
}; 

let s = "helloabc";
for(let c of s) {
    console.log(c);
}

总结来说:for in总是得到对像的key或数组,字符串的下标,而for of和forEach一样,是直接得到值
for of不能对象用

原文地址:https://www.cnblogs.com/wangtong111/p/11223351.html

时间: 2024-10-08 22:27:11

for循环,foreach, map,reduce用法对比+for in,for of的相关文章

js数组中indexOf/filter/forEach/map/reduce详解

今天在网上看到一篇帖子,如题: 出处:前端开发博客 (http://caibaojian.com/5-array-methods.html) 在ES5中一共有9个Array方法,分别是: Array.prototype.indexOf Array.prototype.lastIndexOf Array.prototype.every Array.prototype.some Array.prototype.forEach Array.prototype.map Array.prototype.f

js数组遍历some,foreach,map,filter,every对比

1. [...].some(ck)函数       ----      某个一个为true,则为true 对数组中每个元素执行一次ck函数,知道某个元素返回true,则直接返回true.如果都返回false,则返回false 检查整个数组中是否有满足ck函数的元素. var result = [1,5,3,6].some(  (v,i)  =>  (v>10) )      //所有元素都不满足,返回result = false var result = [10,5,30,60].some(

map reduce 用法 str处理lower() capitalize()

-- 1 s='123456' 2 l={'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s[0]] 3 print(l) 取出dic里面key的元素 1 def normalize(name): 2 tempn=name.lower().capitalize() 3 return tempn 4 L1 = ['adam', 'LISA', 'barT'] 5 L2 = list(map(normalize, L1)) 6

forEach、for+i、map的用法及区别

  array.forEach(callback[, thisObject]); 下面是参数的详细信息: 1. callback : 函数测试数组的每个元素. 2.thisObject : 对象作为该执行回调时使用. forEach是ECMA5中Array新方法中最基本的一个,就是遍历,循环. Array在ES5新增的方法中,参数都是function类型,默认有传参,forEach方法中的function回调支持3个参数,第1个是遍历的数组内容:第2个是对应的数组索引,第3个是数组本身. [].

lodash用法系列(4),使用Map/Reduce转换

Lodash用来操作对象和集合,比Underscore拥有更多的功能和更好的性能. 官网:https://lodash.com/引用:<script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.min.js"></script>安装:npm install lodash 首先通过npm安装lodash:npm i --save lodash 在js文件中引用lodash:var _ =

python中filter,reduce,map的用法

filter的用法: 操作表list的内嵌函数'filter' 需要一个函数与一个list它用这个函数来决定哪个项应该被放入过滤结果队列中遍历list中的每一个值,输入到这个函数中如果这个函数返回True, 那么值就放到过滤结果队列中去如果这个函数返回 False,那么这个值就会被跳过 def pick_num(x): if x%3==0: return x r=[2,4,6,8,10] result=list(filter(pick_num,r)) reduce用法: 操作表list的内嵌函数

Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)...啊啊啊

函数式编程 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. 而函数式编程(请注意多了一个"式"字)--Functional Programming,虽然也可以归结到面向过程的程序设计,但其思想更接近数学计算. 我们首先要搞明白计算机(Computer)和计算(Compute)的概念. 在计算机的层次上,CPU执行的是加减乘除的指令代码

关于js 中的 foreach map

  forEach是ECMA5中Array新方法中最基本的一个,就是遍历,循环.例如下面这个例子: [1, 2 ,3, 4].forEach(alert); 等同于下面这个for循环 ? 1 2 3 4 var array = [1, 2, 3, 4]; for (var k = 0, length = array.length; k < length; k++) {  alert(array[k]); } Array在ES5新增的方法中,参数都是function类型,默认有传参,forEach

关于js foreach map

  forEach是ECMA5中Array新方法中最基本的一个,就是遍历,循环.例如下面这个例子: [1, 2 ,3, 4].forEach(alert); 等同于下面这个for循环 ? 1 2 3 4 var array = [1, 2, 3, 4]; for (var k = 0, length = array.length; k < length; k++) {  alert(array[k]); } Array在ES5新增的方法中,参数都是function类型,默认有传参,forEach