我是Google SpreadSheet的新用户,如果这是一个愚蠢的问题,请原谅。
只是为了练习,我正在尝试制作一个Sodoku解算器。我编写代码时遇到了问题。这是:
为了解决Sodoku,我做了一个功能,检查该单元的可能答案是什么。此函数cellPossibleValues(行,列)接收单元格的行和列,并返回具有单元格可能值的数组。到目前为止,太棒了!
当此数组等于1时,因此该单元格只有一个可能的值,我告诉代码将该值写入单元格。我的问题是它没有写入数字,但它会写入数组。 (它在单元格中写入“[1.0]”,而不仅仅是“1”)。
以下是代码:
for (var row = 1; row <= 9; row++){
for(var column = 1; column <= 9; column++){
cell = board.getCell(row, column).getValue()
if (cell != 0){
boardAsArray.push(cell);
}
else {
boardAsArray.push(cellPossibleValues(row, column));
if (boardAsArray[arrayPosition].length == 1) {
board.getCell(row, column).setValue(boardAsArray[arrayPosition]);
board.getCell(row, column).setFontColor("red");
board.getCell(row, column).setNumberFormat("0");
}
}
arrayPosition = arrayPosition + 1;
}
}
以下是其写作的图像:
请注意,代替“[7.0]”,我希望它在单元格(2,2)中只写为“7”,例如。
我曾尝试使用.setNumberFormat(“0”),但它没有做到这一点......
我该怎么办?
非常感谢你的帮助!!!!
答案 0 :(得分:1)
我有解决方案......很简单......对不起打扰你们......
我的错误是只为该数组编写了一个参数:
board.getCell(row, column).setValue(boardAsArray[arrayPosition]);
为了使其正常工作,我应该写一下:
board.getCell(row, column).setValue(boardAsArray[arrayPosition][0]);
嗯......生活和学习......