javascript - 如何更改 for 循环中制作的圆圈的位置?

标签 javascript

这里是初学者问题,我会在这里发布所有代码,但我相信语法是不同的,因为我使用 codeHS 来学习 Javascript。

如果我使用 for 循环制作圆圈,例如

for (var i = 0; i < NUM_CIRCLES; i++) {

    var circle = new Circle(RADIUS);
    var x = Randomizer.nextInt(RADIUS, getWidth() - RADIUS);
    var y = Randomizer.nextInt(RADIUS, getHeight() - RADIUS);
    circle.setPosition(x, y);
    circle.setColor(Randomizer.nextColor());
    add(circle);

}

如果我以后想更改其中一个圆圈的位置,我该怎么做?这些圆圈都是用 var 圆圈制作的,所以如果使用 circle.setPosition(x,y)我如何告诉它要修改哪个圆?或者我是否必须为每个圆圈创建一个变量,以便可以修改它们的位置。

最佳答案

记录圆形对象,您可以通过数组中的位置或添加到对象的标识符来访问它们

var circleAggregator = [];
for (var i = 0; i < NUM_CIRCLES; i++) {
    var circle = new Circle(RADIUS);
    circleAggregator.push(circle); // index used as identifier
    // you can add another identifier by updating constructor
    var x = Randomizer.nextInt(RADIUS, getWidth() - RADIUS);
    var y = Randomizer.nextInt(RADIUS, getHeight() - RADIUS);
    circle.setPosition(x, y);
    circle.setColor(Randomizer.nextColor());
    add(circle);
}

...稍后当您想要访问对象时,通过它的标识符找到它,在本例中是索引

var selectedCircle = circleAggregator[idx];

或者使用更新方法

updateCirclePosition(circleAggregator[idx]);

关于javascript - 如何更改 for 循环中制作的圆圈的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37200186/

相关文章:

javascript - 我的网站不会在移动设备上滚动

javascript - 使用 Bootstrap Nav 选项我需要从悬停中排除最终元素

javascript - 使用 Backfire 绑定(bind)对模型执行提取不会检索任何数据

javascript - 从 Android webview 中删除 javascript 属性

javascript - Jquery 旋转轨道与项目

javascript - 在 for 循环中获取数据(不是索引)

javascript - 刷新ag-grid中的聚合结果

javascript - 如何在 javascript 中打开子项时保留更改后的图像

javascript - java 和 javascript - 访问 map

javascript - Google Charts 注释时间线 - 在缩放时调整 y 轴