array.splice在javascript中无法正常工作
我正在编写一个简单的数独解算器,它接受一个数字数组1-9,并将它们设置为null,如果它们不可能用于该单元格。例如,一个单元格的答案只能是5,因此除5外,所有数字都设置为空。然后,我有一个clean()函数,该函数从数组中删除所有空值,但不能正常工作。原来的数组是这样的array.splice在javascript中无法正常工作,javascript,arrays,splice,Javascript,Arrays,Splice,我正在编写一个简单的数独解算器,它接受一个数字数组1-9,并将它们设置为null,如果它们不可能用于该单元格。例如,一个单元格的答案只能是5,因此除5外,所有数字都设置为空。然后,我有一个clean()函数,该函数从数组中删除所有空值,但不能正常工作。原来的数组是这样的 [null,null,null,null,5,null,null,null,null] 清洗后,它会返回 [null,null,5,null,null] javascript代码在这里,网格是数独中的数字网格 functio
[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;
}
函数main方法(){
var onepos=oneposs();
}
函数oneposs(){
var possibs=新数组(1,2,3,4,5,6,7,8,9);
对于(var ycount=0;ycount,这是因为当您“拼接”数组时,索引会更改。也许您可以尝试以下代码:
function clean(array){
var x = [];
for(var i=0;i<array.length;i++){
if(array[i]!=null){
x.push(array[i]);
}
}
return x;
}
函数清理(数组){
var x=[];
对于(var i=0;i,您可以在迭代时更改数组。请尝试以下操作:
function clean(array){
for(var i=0;i<=8;i++){
if(array[i]===null){
array.splice(i--,1);
}
}
return array;
}
函数清理(数组){
对于(var i=0;i尝试以下方法:
var array = [null,null,null,null,5,null,null,null,null];
for(var i=0;i<=array.length; ){
if(array[i] === null){
array.splice(i,1);
} else if (array.length < 2) {
break;
} else {
i++;
}
}
var数组=[null,null,null,null,5,null,null,null,null,null];
对于(var i=0;i