第59行的所有内容似乎都有效。我是非常新的编码,并没有真正得到这样的...我无法找到错误,我怀疑,我错过了一个{}或()但我不知道。我认为唯一的错误在于TegnKupon",因为那部分谷歌浏览器告诉我改变。
我试着和一些伙伴讨论这件事,但他们也无能为力。他们用另一种方式制造了它,显然。
<!DOCTYPE html>
<html>
<head>
<canvas id="myCanvas" width="600" height="300" style="border:1px solid #ff0000;">
</canvas>
</head>
<script type="text/javascript">
function find_randomtal(limit)
{
var random_tal
var cont = true
while (cont)
{
random_tal=Math.round(Math.random()*100+1);
if (random_tal <=limit)
{
cont = false
}
}
return random_tal;
}
var lottotal = [];
function Findlottotal ()
{
var min=1;
var random_talny;
var lottotal = [];
for (var j=min; j<=7; j++)
{
random_talny = find_randomtal(36);
if (lottotal.indexOf(random_talny)<0)
{
console.log(j + "random_talny: " + random_talny + " Findes ikke ");
lottotal[j] = random_talny
}
else
{
console.log (j + "random_talny: " + random_talny + " Findes ");
j--
}
}
}
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext("2d");
function TegnKupon()
{
var taeller = 0
for (var j=1;j<=4;j++)
{
for (var i=1;i<=9;i++)
{
taeller = taeller+1
xpos=i*100-50
ypos=100*j-50
if (lottotal.indexOf(taeller)<0)
{
ctx.beginPath();
ctx.fillStyle = "rgb(255,255,255)"
ctx.arc(xpos,ypos,50,0,2*Math.PI);
ctx.fillText("tallet",x,y+10)
}
else
{
ctx.beginPath();
ctx.fillStyle = "rgb(255,0,0)"
ctx.arc(xpos,ypos,50,0,2*Math.PI);
ctx.fillText("tallet",x,y+10)
}
}
}
}
lottotal = Findlottotal()
</script>
<body onload="Findlottotal();TegnKupon()">
</body>
</html>
答案 0 :(得分:1)
这里发生了一些事情......
首先,x
中y
和TegnKupon
未定义。也许您想使用xPos
和yPos
?
接下来,我注意到lottotal
被赋予Findlottotal
的值,但实际上,此函数不会返回任何内容。我在Findlottotal
底部添加了一行以返回lottotal
。
这是我的调整后的代码段。它不再给出控制台错误。
<!DOCTYPE html>
<html>
<head>
<canvas id="myCanvas" width="600" height="300" style="border:1px solid #ff0000;">
</canvas>
</head>
<script type="text/javascript">
function find_randomtal(limit) {
var random_tal;
var cont = true;
while (cont) {
random_tal = Math.round(Math.random() * 100 + 1);
if (random_tal <= limit) {
cont = false;
}
}
return random_tal;
}
var lottotal = [];
function Findlottotal () {
var min = 1;
var random_talny;
var lottotal = [];
for (var j = min; j <= 7; j++) {
random_talny = find_randomtal(36);
if (lottotal.indexOf(random_talny) < 0) {
console.log(j + "random_talny: " + random_talny + " Findes ikke ");
lottotal[j] = random_talny;
}
else {
console.log (j + "random_talny: " + random_talny + " Findes ");
j--;
}
}
return lottotal;
}
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext("2d");
function TegnKupon()
{
var taeller = 0
for (var j = 1; j <= 4; j++)
{
for (var i = 1; i <= 9; i++)
{
taeller = taeller + 1;
xpos = i * 100 - 50
ypos = 100 * j - 50;
if (lottotal.indexOf(taeller) < 0) {
ctx.beginPath();
ctx.fillStyle = "rgb(255,255,255)";
ctx.arc(xpos, ypos, 50, 0, 2 * Math.PI);
ctx.fillText("tallet", xpos, ypos + 10);
}
else {
ctx.beginPath();
ctx.fillStyle = "rgb(255,0,0)"
ctx.arc(xpos,ypos,50,0,2*Math.PI);
ctx.fillText("tallet",xpos,ypos+10);
}
}
}
}
lottotal = Findlottotal()
</script>
<body onload="Findlottotal();TegnKupon()">
</body>
</html>
答案 1 :(得分:1)
正如以上答案所示,有一些我发现的错误:)这是关于你在寻找什么?
function find_randomtal(limit)
{
var random_tal
var cont = true
while (cont)
{
random_tal=Math.round(Math.random()*100+1);
if (random_tal <=limit)
{
cont = false
}
}
return random_tal;
}
function Findlottotal ()
{
var min=0;
var random_talny;
var lottotal = [];
for (var j=min; j<=7; j++)
{
random_talny = find_randomtal(36);
if (lottotal.indexOf(random_talny)<0)
{
console.log(j + "random_talny: " + random_talny + " Findes ikke ");
lottotal[j] = random_talny
}
else
{
console.log (j + "random_talny: " + random_talny + " Findes ");
j--
}
console.log(lottotal);
}
return lottotal;
}
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext("2d");
function TegnKupon(lottotal)
{
var taeller = 0
for (var j=1;j<=4;j++)
{
for (var i=1;i<=9;i++)
{
taeller = taeller+1
xpos=i*100-50
ypos=100*j-50
console.log("taller " + lottotal);
if (lottotal.indexOf(taeller)<0)
{
ctx.beginPath();
ctx.fillStyle = "rgb(255,255,255)"
ctx.arc(xpos,ypos,50,0,2*Math.PI);
ctx.fillText("tallet",xpos,ypos+10)
}
else
{
ctx.beginPath();
ctx.fillStyle = "rgb(255,0,0)"
ctx.arc(xpos,ypos,50,0,2*Math.PI);
ctx.fillText("tallet",xpos,ypos+10)
}
}
}
}
document.getElementsByTagName("body")[0].onload = function() {
var lottotal = Findlottotal();
TegnKupon(lottotal);
};
<!DOCTYPE html>
<html>
<head>
</head>
<canvas id="myCanvas" width="600" height="300" style="border:1px solid #ff0000;">
</canvas>
<body>
</body>
</html>
答案 2 :(得分:0)
你不应该以这种方式调用你的函数。相反,将它们包装到一个名为init的函数中并将其称为onload
function init(){
Findlottotal();
TegnKupon();
}
window.onload = init();
您也在引用x
和y
而未定义它们。我想也许你想说xpos
和ypos
?
答案 3 :(得分:0)
我不确定你在寻找什么输出,但我发现了2个问题: 1.函数TengKupon中没有定义lottotal 2.同样在TengKupon中,在if / else中,ctx.filltext仅列出“x”和“y”。你的意思是在这里使用“xpos”和“ypos”吗?当我相应地替换它们时,我得到一个带有'tallet'的网格(从“if”)或多次(从“else”)
所以数字2应该很容易,但对于数字1,我认为问题可能是你没有返回“lottotal”以使其可供TengKupon使用。您的错误是“无法读取undefined的索引,这是指lottotal。
我假设您的意思是从FindLottotal返回lottotal,所以我在FindLottotal for循环中添加了“return lottotal”,直接在if else之下添加:
var lottotal = [];
for (var j=min; j<=7; j++)
{
random_talny = find_randomtal(36);
if (lottotal.indexOf(random_talny)<0)
{
console.log(j + "random_talny: " + random_talny + " Findes ikke ");
lottotal[j] = random_talny
}
else
{
console.log (j + "random_talny: " + random_talny + " Findes ");
j--
}
return lottotal;
}
如果不了解您正在寻找的内容,我无法提供更多信息,但希望这会让您进入下一步。
祝你好运!