这段代码似乎不起作用。
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;
}
wallPoints
是一个点数组
代码不会返回任何错误,只是让我的所有代码都停止执行。这是我第一次使用JavaScript,所以这可能是一个非常愚蠢的错误。
答案 0 :(得分:3)
你想做什么 - 在x轴上将每个点移一个?您还需要在作业的右侧引用该属性。
for(var b = 0; b < wallPoints.length; b++)
{
wallPoints[b].xPos = wallPoints[b].xPos - 1;
}
或者您想将x轴从一个点传播到另一个点
for(var b = 1; b < wallPoints.length; b++)
{
wallPoints[b].xPos = wallPoints[b-1].xPos;
}
在后一种情况下,您需要弄清楚如何处理第一点。注意终止条件的变化(以及第二种情况下的开始条件)。
编辑:这是我的测试代码:
<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>
答案 1 :(得分:0)
您正在指定一个等于点的X变量。不是一个选择:
for(var b = 0; b < wallPoints.length-1; b++)
{
wallPoints[b].xPos = wallPoints[b]-1;
}
而不是试试这个:
for(var b = 0; b < wallPoints.length-1; b++)
{
wallPoints[b].xPos = wallPoints[b].xPos - 1;
}