通过将函数作为参数传递来合并数组
Merging arrays with passing a function as parameter
我已经在这个问题上思考了大约 3 个小时,但我无法弄明白。我上过 Codecademy 和 Code School Javascript 课程,根据托管此代码块的博客,我应该知道答案:
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
,你:
为 return 值创建一个新的空白数组。
考虑一下如果 array1
和 array2
的长度不同,尽管它们在示例用法中。
使用索引变量从 0
循环到 < array1.length
(很可能是 for
循环)。
通过调用 callback
为 return 值数组中的每个索引填写条目,从 array1
和 [=] 传递该索引的条目12=] 作为参数并将其 return 值存储在数组中。
Return 新数组。
我已经在这个问题上思考了大约 3 个小时,但我无法弄明白。我上过 Codecademy 和 Code School Javascript 课程,根据托管此代码块的博客,我应该知道答案:
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
,你:
为 return 值创建一个新的空白数组。
考虑一下如果
array1
和array2
的长度不同,尽管它们在示例用法中。使用索引变量从
0
循环到< array1.length
(很可能是for
循环)。通过调用
callback
为 return 值数组中的每个索引填写条目,从array1
和 [=] 传递该索引的条目12=] 作为参数并将其 return 值存储在数组中。Return 新数组。