javascript - 通过传递函数作为参数来合并数组

标签 javascript merge callback

我已经解决这个问题大约3个小时了,但我无法弄清楚。我已经完成了 Codecademy 和 Code School Javascript 类(class),根据托管此代码块的博客,我应该知道答案:

var merge = function(array1, array2, callback){  
  //your code here.
}

var x = merge([1, 2, 3, 4], [5, 6, 7, 8], function(a, b){  
  return a + b;
});

//x should now equal [6, 8, 10, 12].

更新了正确的代码(非常感谢 T.J.!):

var merge = function(array1, array2, callback) {
  var i, newArray = [];

  for (i=0; i < array1.length; i++) {
    newArray[i] = callback(array1[i], array2[i]);   
  }
  return newArray;
};

var x = merge([1, 2, 3, 4], [5, 6, 7, 8], function(a, b){  
  return a + b;
});
console.log(x);

最佳答案

merge ,你:

  1. 为返回值创建一个新的空白数组。

  2. 考虑如果array1您想要做什么和array2尽管在示例用法中它们的长度不同。

  3. 使用索引变量从 0 开始循环通过< array1.length (很可能是 for 循环)。

  4. 通过调用 callback 填写返回值数组中每个索引的条目。 ,传递来自 array1 的该索引条目和来自 array2作为参数并将其返回值存储在数组中。

  5. 返回新数组。

关于javascript - 通过传递函数作为参数来合并数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30682499/

相关文章:

c++ - Git 将更新的 master merge 到一个分支

c# - 在 c#.net 中使用 iTextSharp 合并多个 PDF

javascript - jquery调用函数

c# - 包装一个在 c# 中实现回调的 native 库

javascript - ECMAScript 中的内部属性是为什么定义的?

javascript - 验证 javascript 十进制数

c# - Ajax AutoCompleteExtender - 为什么此代码不起作用?

javascript - 使用 jQuery 从单个 HTML 列表进行实时搜索和排序

ruby - NoMethodError : undefined method `reverse_merge'

android - setOneShotPreviewCallback 没有回调我的方法