我已经解决这个问题大约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
,你:
为返回值创建一个新的空白数组。
考虑如果
array1
您想要做什么和array2
尽管在示例用法中它们的长度不同。使用索引变量从
0
开始循环通过< array1.length
(很可能是for
循环)。通过调用
callback
填写返回值数组中每个索引的条目。 ,传递来自array1
的该索引条目和来自array2
作为参数并将其返回值存储在数组中。返回新数组。
关于javascript - 通过传递函数作为参数来合并数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30682499/