Не удается прочитать свойство undefined Processing.js - PullRequest
0 голосов
/ 30 декабря 2018

Я создал объект с возвышением объекта, но при попытке доступа к нему с помощью массива отладчик сообщает, что он не определен.

var h = 30;
var disk = function(pos,elv){
    this.pos = pos;
    this.elv = elv;
    rect(56 * pos, 369-pos * h + h, 95, h, 2);
};
var disks = [
    {position:1,
    elevation:1},
    {position:1,
    elevation:2},
    {position:1,
    elevation:3},
    {position:1,
    elevation:4},
    {position:1,
    elevation:5},
    {position:1,
    elevation:6}
];
fill(0, 136, 255);
for(var i = 0; i<= 6; i++){
    var diskNum = disks[i];
    disk(1,diskNum.elevation);
}
};

Я ожидал, что программа нарисует прямоугольники поверхдруг друга, но программа выводит на экран Невозможно прочитать свойство возвышения неопределенного.https://www.khanacademy.org/computer-programming/new-program/5983920391094272

1 Ответ

0 голосов
/ 31 декабря 2018

В вашем массиве disks есть 6 элементов с индексами 0, 1, 2, 3, 4 и 5.

Затем вы используете этот цикл for для их итерации:

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

Так как вы используете оператор <=, это включает в себя всего 7 индексов: 0, 1, 2, 3, 4, 5 и 6.

Возможно, вы просто хотитеВместо этого оператор <.

Также обратите внимание, что не имеет смысла хранить this.pos и this.elv, поскольку вы никогда не используете их ни для чего.

Когда я исправляювыше ошибка, я вижу прямоугольник.Не совсем уверен, для чего предназначена программа, но это по крайней мере исправляет вашу ошибку.

...