【问题标题】:JavaScript not drawing correctly from a multidimensional arrayJavaScript 无法从多维数组中正确绘制
【发布时间】:2016-07-18 16:52:56
【问题描述】:

我正在从具有 3 个维度的 javascript 数组中的特定位置绘制圆圈(我认为)。我正在使用 2 级 for 循环绘制它们,第一个处理圆圈的 x 坐标,第二个处理圆圈的 y 坐标,然后从数组中传入圆圈的颜色(数组只包含它们的颜色values) 并将它们传递给 Circle 函数,该函数仅从 x、y、color 和 radius 值中提取它们。然而,我的代码似乎只画了一个或似乎无法识别数组中的第三维。代码如下:

//define the sequence of lights
var lightSequence = [[["red",'darkOrange','darkGreen','other'],["red",'darkOrange','darkGreen','other']],[['red',"orange",'darkGreen'],['red',"orange",'darkGreen']],[['darkRed','darkOrange',"green"],['darkRed','darkOrange',"green"]],[['darkRed',"orange",'darkGreen'],['darkRed',"orange",'darkGreen']]];
//draw all of the traffic lights from the array
for (var xMove = 0; xMove < lightSequence[i].length; xMove ++) {
    console.log(lightSequence[i][xMove]);
    for (var value = 0; value < lightSequence[i][xMove].length; value ++) {
        circle(xPos + (radius*(xMove * 2))+ (spacing * (xMove)), startY + (radius*(value * 2)) + (spacing * (value)), radius, lightSequence[i][xMove][value]);
        console.log([i][xMove][value]);
    }
}

灯光按由i 控制的序列进行,因此[["red",'darkOrange','darkGreen','other'],["red",'darkOrange','darkGreen','other']] 是序列中的一次绘制,应该绘制2 列,每列4 盏灯,但序列的所有部分似乎只绘制一盏灯(数组中的最后一个要具体)但我不知道为什么。 xMove 控制阵列的 x 轴并用于绘制,value 控制阵列的 y 轴并用于绘制灯光。

【问题讨论】:

  • 格式化成json试试
  • 我不是在 json 中编程,这将在 javascript 中工作,所以我更喜欢在 javascript @Ray 中使用它

标签: javascript arrays for-loop multidimensional-array


【解决方案1】:

最后我设法回答了我自己的问题。代码没有画出所有圆圈的原因是因为第 8 行说 console.log([i][xMove][value]); 这应该是 console.log(lightSequence[i][xMove][value]); 它抛出了一个错误,因为它没有引用变量导致它脱离 for 语句而不是继续最后的代码应该是

//draw all of the traffic lights from the array
for (var xMove = 0; xMove < lightSequence[i].length; xMove ++) {
    console.log('lightSequence[i][xMove]: ' + lightSequence[i][xMove]);
    for (var value = 0; value < lightSequence[i][xMove].length; value ++) {
        circle(xPos + (radius*(xMove * 2))+ (spacing * (xMove)), startY + (radius*(value * 2)) + (spacing * (value)), radius, lightSequence[i][xMove][value]);
        console.log(lightSequence[i][xMove][value]);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    • 2012-10-05
    • 2023-04-01
    • 1970-01-01
    相关资源
    最近更新 更多