JavaScript数组问题

JavaScript数组问题,javascript,arrays,html,canvas,Javascript,Arrays,Html,Canvas,这段代码似乎不起作用 for(var b = 0; b < wallPoints.length-1; b++) { wallPoints[b].xPos = wallPoints[b]-1; } function Point(x,y) { this.xPos = x; this.yPos = y; } for(var b=0;b

这段代码似乎不起作用

for(var b = 0; b < wallPoints.length-1; b++)  
{  
    wallPoints[b].xPos = wallPoints[b]-1;  
}  

function Point(x,y)  
{  
    this.xPos = x;  
    this.yPos = y;  
}
for(var b=0;b
wallPoints
是一组点


代码没有返回任何错误,它只是使我的所有代码停止执行。这是我第一次使用JavaScript,所以这可能是一个非常愚蠢的错误。

你想做什么——在x轴上将每个点移动一次?您还需要引用赋值右侧的属性

for(var b = 0; b < wallPoints.length; b++)   
{   
    wallPoints[b].xPos = wallPoints[b].xPos - 1;   
}
for(var b=0;b
还是要将x轴从一个点传播到另一个点

for(var b = 1; b < wallPoints.length; b++)   
{   
    wallPoints[b].xPos = wallPoints[b-1].xPos;   
}
for(var b=1;b
在后一种情况下,您需要弄清楚如何处理第一点。注意终止条件(第二种情况下为启动条件)的变化

编辑:以下是我的测试代码:

<html>
<head>
<title>Point</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
    var wallPoints = new Array();
    wallPoints[0] = new Point(0,10);
    wallPoints[1] = new Point(600,10);
    wallPoints[2] = new Point(650,10);

    var content = $('#content');

    content.append('<h2>Before</h2>');

    for(var b = 0; b < wallPoints.length; b++)
    {
        content.append('<p> x = ' + wallPoints[b].xPos + ', y = ' + wallPoints[b].yPos + '</p>' );
        wallPoints[b].xPos = wallPoints[b].xPos-1;
    }
    content.append('<h2>After</h2>');

    for(var b = 0; b < wallPoints.length; b++)
    {
        content.append('<p> x = ' + wallPoints[b].xPos + ', y = ' + wallPoints[b].yPos + '</p>' );
    }

    function Point(x,y)
    {
        this.xPos = x;
        this.yPos = y;
    }
});
</script>
</head>
<body>
<div id="content">
</div>
</body>
</html>

指向
$(函数(){
var wallPoints=新数组();
墙点[0]=新点(0,10);
墙点[1]=新点(600,10);
墙点[2]=新点(650,10);
var content=$(“#content”);
content.append('Before');
对于(var b=0;b');
wallPoints[b].xPos=wallPoints[b].xPos-1;
}
content.append('After');
对于(var b=0;b');
}
功能点(x,y)
{
this.xPos=x;
this.yPos=y;
}
});

您正在为一个点分配一个X变量。不可选择:

for(var b = 0; b < wallPoints.length-1; b++)  
{  
    wallPoints[b].xPos = wallPoints[b]-1;  
}  
for(var b=0;b
相反,请尝试以下方法:

for(var b = 0; b < wallPoints.length-1; b++)  
{  
    wallPoints[b].xPos = wallPoints[b].xPos - 1;
}  
for(var b=0;b
检查此行
wallPoints[b].xPos=wallPoints[b]-1显示
墙点的代码
请。'wallPoints=new Array();墙点[0]=新点(0,10);墙点[1]=新点(600,10);wallPoints[2]=新点(650,10);'当前初始化该数组的最佳实践方式:
var wallPoints=[新点(0,10)、新点(600,10)、新点(650,10)]您是否成功解决了此问题?你还需要这方面的帮助吗?对不起,这是我最初的代码,但我在这里输入时弄糟了。代码仍然不起作用。@Daniel:最好发布您已按编写方式运行并遇到问题的真实代码。您重新键入的代码可能不会出现相同的问题。正如这个答案所示,它还可能有其他问题。@daniel——我已经测试了上面的代码(添加了一些代码,以便我可以看到它正在工作),看起来还可以。firefox/firebug是否在控制台中显示任何内容?如果你没有firefox/firebug,你真的应该得到它们。这将对调试javascript问题有很大帮助。@tvanfosson~我认为你在他的问题上投入的时间比他多。@drachenstern——剪切粘贴,剪切粘贴。它有助于已经设置了模板测试文档。