如何形象地解释 JavaScript 中 map,foreach,reduce 间的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何形象地解释 JavaScript 中 map,foreach,reduce 间的区别相关的知识,希望对你有一定的参考价值。

map和foreach类似,都是遍历输出结果,只是方式不太一样,map直接对整个列表数据进行函数操作;而foreach是迭代对每行数据进行逐一操作,foreach灵活性更好吧,map效率更好点儿。
为什么reduce最后说呢。因为上面两个基本一样,你也可以混着用,但是reduce差别就大了,这是一个二元操作,就是对给定列表中的数据两个两个的进行每次的操作,调用的函数类似这样hex(x,y)
参考技术A map和foreach类似,都是遍历输出结果,只是方式不太一样,map直接对整个列表数据进行函数操作;而foreach是迭代对每行数据进行逐一操作,foreach灵活性更好吧,map效率更好点儿。
为什么reduce最后说呢。因为上面两个基本一样,你也可以混着用

如何使 JavaScript 中每个元素的 map 函数的键值递增

【中文标题】如何使 JavaScript 中每个元素的 map 函数的键值递增【英文标题】:How to make key value of map function increment for each element in JavaScript 【发布时间】:2019-04-04 02:05:21 【问题描述】:

我正在映射字段数组中的每个字段,以便每个字段都有一个从 1...n 个字段开始的 id。

我使用它,因为我将所有字段值存储在一个数组中,当一个字段发生更改时,我希望 data[index] 相应地更新。

这是我的地图功能代码

this.state.fields.map((field) => 
return (
    <IssueInputRow
        labelText=field.name
        key=i   //want this to increment by 1 for each field, starting a 0                 
        handler=this.handler
    />
    );
)

我希望每个字段的键从 0 开始增加 1。 因此,如果有 3 个字段,则相应字段的键应为 0,1,2。

请告诉我这是怎么可能的

【问题讨论】:

使用map()的索引参数 这可能有助于***.com/questions/38364400/index-inside-map-function 【参考方案1】:

在 JavaScript 中,ma​​p 函数有两个参数,一个是 item,第二个是 key。 您需要始终提供这两个参数,否则它将在您的控制台中显示错误。 Item 会返回数组的值,Key 会返回从 0 开始的下标值。

你可以这样做 ->

this.state.fields == undefined ? '' : this.state.fields.map((field, i) => 
    return (
        <IssueInputRow
         labelText=field.name
         key=i  //Here key (i) will give you the value starting from 0           
         handler=this.handler
        />
    );
 ) 

为了更好地理解地图,请参阅 -> enter link description here

【讨论】:

【参考方案2】:

map 的函数的第二个参数是数组索引,所以你可以使用它。

this.state.fields.map((field, i) => 
  return (
    <IssueInputRow
      labelText=field.name
      key=i             
      handler=this.handler
    />
  );
)

【讨论】:

更多阅读在这里developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…

以上是关于如何形象地解释 JavaScript 中 map,foreach,reduce 间的区别的主要内容,如果未能解决你的问题,请参考以下文章

如何形象地解释 JavaScript 中 map,foreach,reduce 间的区别

如何形象地解释 JavaScript 中 map,foreach,reduce 间的区别

如何形象地解释 JavaScript 中 mapforeachreduce 间的区别?

如何通俗地解释 PID 参数整定?

网络七层协议形象解释

JAVA中,类、对象、实体、实体类、实体对象之间存在怎样的联系??请高手做形象的解释。