我正在编写一个简单的数独求解器,它采用数字 1-9 的数组,如果该单元格不可能,则将它们设置为 null。一个示例是一个单元格,其中答案只能是 5,因此除 5 之外的所有数字都设置为空。然后,我有一个 clean() 函数,它从数组中删除所有为空的值,但这不能正常工作。原来的数组是这样的。
[null,null,null,null,5,null,null,null,null]
洗干净后又回来了
[null,null,5,null,null]
javascript代码在这里,网格是数独中的数字网格
function mainmethod(){
var onepos=oneposs();
}
function oneposs(){
var possibs=new Array(1,2,3,4,5,6,7,8,9);
for (var ycount=0;ycount<=8;ycount++){
var value=grid[0][ycount];
var index=possibs.indexOf(value);
possibs[index]=null;
}
// for(var xcount=0;xcount<=8;xcount++){
// var value=grid[xcount][0];
// var index=possibs.indexOf(value);
// possibs.splice(index,1);
// }
possibs=clean(possibs);
alert(JSON.stringify(possibs));
}
function clean(array){
for(var i=0;i<=8;i++){
if(array[i]===null){
array.splice(i,1);
}
}
return array;
}
本质上,array.splice 并没有拼接它需要的所有东西,我不知道为什么