在尝试用Javascript实现数独解算器时,我的逻辑哪里出了问题?

在尝试用Javascript实现数独解算器时,我的逻辑哪里出了问题?,javascript,recursion,backtracking,sudoku,recursive-backtracking,Javascript,Recursion,Backtracking,Sudoku,Recursive Backtracking,常数N=4; 常数fourbyfour=[ [1, 0, 0, 4], [3, 4, 1, 2], [2, 1, 4, 3], [4, 3, 2, 1], ]; 函数求解(板){ for(设i=0;i

常数N=4;
常数fourbyfour=[
[1, 0, 0, 4],
[3, 4, 1, 2],
[2, 1, 4, 3],
[4, 3, 2, 1],
];
函数求解(板){
for(设i=0;i单元格!==0);
if(新集合(行).size!==行.length){
返回false;
}
}
//检查列是否有效
for(设i=0;i控制台。表格(四乘四求解)您永远不会返回递归的值。您需要在第二次输入
solve
时返回

另外,
console.table
不允许在代码段中工作

常数N=4;
常数fourbyfour=[
[1, 0, 0, 4],
[3, 4, 1, 2],
[2, 1, 4, 3],
[4, 3, 2, 1],
];
函数求解(板){
for(设i=0;i单元格!==0);
if(新集合(行).size!==行.length){
返回false;
}
}
//检查列是否有效
for(设i=0;ilog(solve(fourbyfour))您永远不会返回递归的值。您需要在第二次输入
solve
时返回

另外,
console.table
不允许在代码段中工作

常数N=4;
常数fourbyfour=[
[1, 0, 0, 4],
[3, 4, 1, 2],
[2, 1, 4, 3],
[4, 3, 2, 1],
];
函数求解(板){
for(设i=0;i单元格!==0);
if(新集合(行).size!==行.length){
返回false;
}
}
//检查列是否有效
for(设i=0;ilog(solve(fourbyfour))
我觉得添加几个花括号可以帮助您解决问题。您不应该在此处返回值,即
else solve(board)
应该是
否则{返回解算(板);}
?谢谢!你说得对@user2740650我觉得添加几个花括号可以帮助您解决问题。您不应该在此处返回值,即
else solve(board)
应该是
否则{返回解算(板);}
?谢谢!你说得对@用户2740650