如果不允许使用循环,并且要根据输入的参数 m 和 n 获取一个长度为 m 的数组,且数组的所有元素都是 n,你可以使用递归来实现。
下面是一个使用递归的示例代码,实现了这个功能:
function createArray(m, n) {
if (m === 0) {
return [];
} else {
return [n].concat(createArray(m - 1, n));
}
}
const result = createArray(5, 10);
console.log(result); // 输出:[10, 10, 10, 10, 10]
在这个示例中,createArray
函数接收两个参数 m
和 n
。如果 m
等于 0,表示已经创建完了所有的元素,返回一个空数组。否则,我们递归地调用 createArray
函数,并将 m - 1
作为新的参数传递下去。同时,我们将 n
添加到数组的头部,使用 concat
方法合并结果数组,最终返回一个长度为 m
的数组,其中的每个元素值都是 n
。
需要注意的是,使用递归实现时,如果输入的 m
值非常大,可能会导致递归层级很深,可能会影响性能或导致堆栈溢出。在实际应用中,需要根据具体情况进行评估和优化。