我正在寫一個簡單的數獨求解器,它需要一個數字1-9的數組,並將它們設置爲null,如果它們不適用於該單元格。一個例子是答案只能是5的單元格,所以所有的數字都被設置爲空,除了五。然後,我有一個clean()函數,它將從數組中刪除所有值爲空的值,但這不正確。原始數組是這個。array.splice在JavaScript中無法正常工作
[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不拼接它需要的一切,我不知道爲什麼
謝謝,它工作得很好。 – 2013-12-20 13:38:55