此函数查找可将字段分成最大的等边部分。
function field (width, height) {
let big = Math.max(width, height);
let small = Math.min(width, height);
if (big / small === 1){
let arr = [];
arr.push(big);
arr.push(small);
return arr;
}
field(big-small, small);
}
field(1600, 500) // should be [100, 100]
它返回undefined
,但是如果我以前使用console.log
,则显示一切正常。为什么?
答案 0 :(得分:1)
您需要一个return语句来进行递归调用。
return field(big - small, small);
function field(width, height) {
let big = Math.max(width, height);
let small = Math.min(width, height);
if (big === small) { // easier check
let arr = [];
arr.push(big);
arr.push(small);
return arr;
}
return field(big - small, small);
}
console.log(field(1600, 500));