我想创建一个递归函数,它将递增一个值对,返回“YES”的值当值等于另一个值。我可以安慰对成长并最终匹配,但随后的功能与undefined值结束。
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]]));