【发布时间】:2014-05-06 22:29:30
【问题描述】:
我正在尝试在 JavaScript 中编写一个数组复制函数,它将一个数组和一个复制因子作为输入参数,并返回该复制的数组。
像这样:
expect(replicate([2,3,4],2).toEqual([2,3,4,2,3,4]));
我正在尝试使用递归调用的自执行内部函数来完成此操作,该函数应在完成后将所需的值返回给外部函数。
内部函数似乎工作正常:
var replicate = function (inputArray, n) {
var outputArray = [];
return (function replicateInner(n) {
if (n > 0) {
outputArray.push(inputArray.slice(0));
replicateInner(--n)
} else {
alert('inner function returns: ' + outputArray);
//inner function returns: [2,3,4,2,3,4]
return outputArray;
}
})(n);
};
但是当我调用外部函数时,它返回 undefined
alert(replicate([2,3,4],2)); // returns undefined, not [2,3,4,2,3,4]
知道我在这里可能缺少什么吗? 谢谢!
【问题讨论】:
标签: javascript