我正在尝试创建一个递归函数,该函数将递增值对中的值,并在值等于另一个值时返回"YES"。我可以控制台对增长并最终匹配,但随后函数以未定义的值结束。
function checkKanga(kangaArr) {
if (kangaArr[0][0] > kangaArr[1][0]) return 'NO';
if (kangaArr[0][0] === kangaArr[1][0]) return 'YES';
kangaArr[0][0] += kangaArr[0][1];
kangaArr[1][0] += kangaArr[1][1];
checkKanga(kangaArr);
}
checkKanga([ [ 0, 3 ], [ 4, 2 ] ]);
我希望它在运行 4 次后返回"YES",但我只得到未定义。
你需要
return
递归调用:
function checkKanga(kangaArr) {
if (kangaArr[0][0] > kangaArr[1][0]) return 'NO';
if (kangaArr[0][0] === kangaArr[1][0]) return 'YES';
kangaArr[0][0] += kangaArr[0][1];
kangaArr[1][0] += kangaArr[1][1];
return checkKanga(kangaArr);
}
示范:
function checkKanga(kangaArr) {
if (kangaArr[0][0] > kangaArr[1][0]) return 'NO';
if (kangaArr[0][0] === kangaArr[1][0]) return 'YES';
kangaArr[0][0] += kangaArr[0][1];
kangaArr[1][0] += kangaArr[1][1];
return checkKanga(kangaArr);
}
console.log(checkKanga([[0, 3], [4, 2]]));