我有一个数组,其元素也是数组,每个数组包含三个元素。我想使用function calcMe(a,b,c){...}方法为我的主数组的每个元素调用forEach(),但是我真的很困惑,不知道如何使它工作。

arr = [[1,5,4], [8,5,4], [3,4,5], [1,2,3]]
function calcMe(a,b,c){...}
arr.forEach(calcMe.Apply(-----, -----));
如何使用Apply()将内部数组的每个元素作为参数传递给函数?

最佳答案

首先,calcMe似乎没有返回函数,因此您不能将其返回值传递给forEach

我猜你想要类似的东西

var arr = [
  [1, 5, 4],
  [8, 5, 4],
  [3, 4, 5],
  [1, 2, 3]
]

function calcMe(a, b, c) {
  var pre = document.getElementById('pre')
  pre.innerHTML += 'calcMe arguments: ' +  a +","+ b +","+ c  + "<br/>";
}

arr.forEach(function(el, index) {
  // Could also use `arr[index]` instead of el
  calcMe.apply(this, el);
});
<pre id='pre'></pre>


对于更高级的版本,you can bind Function.prototype.apply 可以像上面一样模拟创建函数。

07-24 18:27