map()和forEach()[复制]的特殊性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了map()和forEach()[复制]的特殊性相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

javascript中map()vs forEach的特殊性(特异性)是什么?

他们工作得很好!

 <script type="text/javascript"> "use strict";
   const array1 = [12, 3, 7];
   const array2 = [];

   const dispEls=(el, idx, array1) =>
       array2.push("exp (a[" + idx+ "] = "+el+") = "+
       Math.exp(el).toFixed(2));

   array2.push("===== FOREACH");
   array1.forEach(dispEls);
   array2.push("===== MAP");
   array1.map(dispEls);

   console.dir(array2)
 /*[…]
 0: "===== FOREACH"
 1: "exp (a[0] = 12) = 162754.79"
 2: "exp (a[1] = 3) = 20.09"
 3: "exp (a[2] = 7) = 1096.63"
 4: "===== MAP"
 5: "exp (a[0] = 12) = 162754.79"
 6: "exp (a[1] = 3) = 20.09"
 7: "exp (a[2] = 7) = 1096.63"
 length: 8      */
 </script>
答案

map返回一个数组,其中包含函数返回的值,而forEach则没有。如果您不需要新阵列,请选择forEach

使用代码的示例:

const array1 = [12, 3, 7];
const array2 = [];

const dispEls = (el, idx, array1) =>
  array2.push("exp (a[" + idx + "] = " + el + ") = " +
    Math.exp(el).toFixed(2));

array2.push("===== FOREACH");
let result_forEach = array1.forEach(dispEls);
array2.push("===== MAP");
let result_map = array1.map(dispEls);


console.dir(result_forEach)
console.dir(result_map)

以上是关于map()和forEach()[复制]的特殊性的主要内容,如果未能解决你的问题,请参考以下文章

map() 和 forEach() 区别 兼容写法

PHP 数组遍历方法大全(foreach,list,each)

Array.map()和Array.forEach()返回原始数组

.map() vs .forEach() vs for() 如何选择?

ThinkPHP中foreach和volist的区别

vue 数组遍历方法forEach和map的原理解析和实际应用